LinuxDo 新帖推送
178 subscribers
250K photos
311K links
Download Telegram
标题: 【强烈推荐】dokploy这款开源工具是真的好用
作者: #小玩家
板块: #搞七捻三
编号: 1997194
帖子: https://linux.do/t/topic/1997194
时间: 2026-04-18 22:39:09
摘要:
用dokploy部署任何项目真的很轻松,什么GitHub docker dockerfile Compose等等,全都可以搞。我自己部署了中转,CDK卡密,导航站,sora去水印好几个项目都在里面。服务器搞的是RN的6G内存美区服务器,带宽好像是万兆的。宝塔和dokploy比较,现在我喜欢dokploy这工具。不懂怎么配置,一步一步截图问codex,轻轻松松搞起来。
标题: 从 *index.html* 到 *app.js*:一篇讲清 Chrome 插件基本结构的入门文稿
作者: #酸奶不舔盖
板块: #开发调优
编号: 1997195
帖子: https://linux.do/t/topic/1997195
时间: 2026-04-18 22:39:15
摘要:
小白开发插件,在期间看文件的时候学到的一些东西,特地分享给大家:
博文链接:https://418122.xyz/posts/project/chrome-extension-basic-structure-beginners-guide

很多人第一次打开一个 Chrome 插件项目时,会看到一堆文件名,然后立刻陷入混乱。index.html、style.css、manifest.json、background.js、content.js、app.js 看起来都像"代码文件",可它们根本不在同一个层面上工作。想真正看懂插件,关键不是背文件名,而是理解这些文件分别处在什么位置,承担什么职责,以及它们如何配合浏览器、网页和用户界面一起运转。
这篇文章想做的事很直接,就是把这些文件背后的逻辑彻底串起来,让你在看到一个插件目录时,能迅速判断每个文件到底在做什么。
index.html 是插件界面的骨架
在 Chrome 插件里,index.html 通常用来描述某个页面的内容和结构。它决定页面上会出现什么元素,比如标题、按钮、输入框、文本区域,也负责把样式文件和脚本文件接进来。你可以把它理解为一个界面的骨架,因为页面里"有什么"这件事,主要就是由 HTML 决定的。
如果一个插件有弹窗界面,那么点击插件图标后看到的内容,通常来自某个 HTML 文件。有些项目把它命名为 popup.html,有些项目也会叫 index.html。名字并不重要,重要的是它是否被浏览器当成插件页面真正加载了。
下面这个例子足够说明它的角色:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Hello Chrome Extension</h1>
<button>点击我</button>
</body>
</html>

这段代码里,页面里有哪些内容,完全由 HTML 决定。它告诉浏览器,这个页面有一个标题,有一个按钮,同时还引入了样式文件。你在页面里看到的一切界面元素,本质上都从这里开始。
style.css 决定界面看起来是什么样
如果说 HTML 负责把页面元素摆出来,那么 style.css 负责让这些元素有可读性、有层次感,也更像一个真正能用的界面。字体大小、颜色、背景、边距、按钮的外观、元素之间的排列方式,这些都属于 CSS 的领域。
比如下面这段代码:
body {
width: 250px;
font-family: Arial, sans-serif;
padding: 10px;
}

h1 {
color: blue;
font-size: 18px;
}

button {
background-color: green;
color: white;
}

这段样式并没有改变页面里"有什么",但它显著改变了页面"长什么样"。这正是 CSS 的作用。很多初学者一开始会把 HTML 和 CSS 混着理解,实际上它们解决的是两个完全不同的问题。HTML 决定内容和结构,CSS 决定视觉和排版。
放到插件环境里也是一样。无论这个页面是弹窗页、选项页,还是插件扩展出来的其他界面,CSS 的职责都很稳定,就是把原本生硬的结构变成可以阅读、可以操作、也更符合界面习惯的样子。
在插件里,HTML、CSS、JavaScript 分别站在不同位置上
只看 HTML 和 CSS,还只是理解了插件界面的静态部分。一个真正可用的插件,还必须让界面"动起来",这时候 JavaScript 才会加入进来。
HTML 负责搭出页面结构,CSS 负责赋予它视觉效果,JavaScript 负责让页面对用户的操作做出反应。比如用户点击按钮后获取信息,或者把某个结果显示到页面上,这些都属于 JavaScript 的工作。
下面这段代码很简单,但它能准确展示 JavaScript 的作用:
document.getElementById("btn").addEventListener("click", () => {
console.log("按钮被点击");
});

这时候你就能看到三者之间的协作关系。HTML 放了一个按钮,CSS 把这个按钮变得更清晰、易用,JavaScript 让这个按钮具备"点击以后发生事情"的能力。它们共同组成了插件界面这一层的完整逻辑。
manifest.json 是插件的入口和规则中心
当你把眼光从界面移开,就会看到插件最核心的配置文件,也就是 manifest.json。这个文件的重要性非常高,因为 Chrome 浏览器安装和加载插件时,最先读取的就是它。没有它,插件无法被识别。写错了它,插件也可能根本无法运行。
它承担的职责可以概括为一件事,就是告诉浏览器:这个插件是谁,它有哪些页面,有哪些脚本,想申请哪些权限,以及这些能力应该如何被组织起来。
最简单的内容通常长这样:
{
"name": "My Extension",
"version": "1.0",
"manifest_version": 3
}

这里记录了插件的基本身份信息。接着你还会看到它声明插件弹窗页面:
{
"action": {
"default_popup": "popup.html"
}
}

浏览器读到这里,就知道用户点击插件图标时,应该打开 popup.html。如果插件带后台脚本,还会出现类似配置:
{
"background": {
"service_worker": "background.js"
}
}

如果插件需要把脚本注入网页,则可能是这样:
{
"content_scripts": [
{
"matches": ["https://*/*"],
"js": ["content.js"],
"css": ["content.css"]
}
]
}

如果插件要访问某些浏览器能力,还得显式申请权限:
{
"permissions": ["storage", "tabs", "activeTab"]
}

所以,从更本质的角度看,manifest.json 的作用,就是定义插件"能做什么、在哪里做、通过谁去做"。这也是为什么它像一个总开关。你后面看到的页面、脚本、权限,最终都要回到这里去确认。
background.js 像插件的后台调度中心
理解了 manifest.json 后,再去看 background.js 就容易多了。这个文件通常不负责展示界面,也不会直接嵌在某个网页里。它更像插件的后台控制层,负责监听浏览器事件、处理全局逻辑、协调不同模块之间的通信。
比如插件刚被安装时,它可以执行初始化逻辑:
chrome.runtime.onInstalled.addListener(() => {
console.log("插件已安装");
});

它也可以监听某些全局事件,或者接收来自界面页和内容脚本的消息:
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.type === "getData") {
sendResponse({ data: "这是后台返回的数据" });
}
});

为什么插件需要这样的文件?因为有些事情不适合写在界面脚本里,也不适合写在网页注入脚本里。比如统一管理状态、协调多个标签页、处理浏览器级别的事件、访问某些只允许后台使用的 API,这些任务都更适合放在后台脚本中。
如果你使用的是 Manifest V3,那么这里还有一个重要变化。background.js 在很多情况下是以 service_worker 的方式运行的。它不会一直常驻,而是事件来了就唤醒,执行完任务后可能进入休眠。这背后体现的是 Chrome 的设计取向,它希望插件更节省资源,也更容易控制风险。
content.js 是插件进入网页内部后的执行者
如果说后台脚本站在浏览器层面处理逻辑,那么 content.js 站在网页现场工作。它会被注入某个网页中,因此可以直接访问这个网页的 DOM,也就是页面上的标题、按钮、正文、输入框这些真实存在的元素结构。
举个最简单的例子:
const title = document.querySelector("h1");
console.log(title.innerText);

这段代码能直接读取网页上的标题内容。它也可以修改页面:
document.body.style.backgroundColor = "lightyellow";

甚至还能监听页面中的某些操作。也就是说,content.js 的核心价值,在于让插件真正进入网页环境,看到页面内容,并对页面进行读取或修改。
不过这里有一个非常容易被忽略的边界。content.js 虽然运行在网页里,但它依然属于插件。它拥有插件赋予的能力,也受到插件环境的限制。它和页面原生脚本之间并不是完全共享一切的关系,因为浏览器会通过隔离机制防止它们互相污
标题: 佬们 谁可以帮我看看我的这个帖子为什么会被举报吗 谢谢啦
作者: #kexincolar
板块: #搞七捻三
编号: 1997197
帖子: https://linux.do/t/topic/1997197
时间: 2026-04-18 22:39:50
摘要:
https://linux.do/t/topic/1996548/48

佬友们 我发的这个给大家抽奖的帖子 是不是我的发帖格式不对吖 我应该怎么修改帖子呢 谢谢
标题: 关于codex聊天记录的一点疑问
作者: #六月的雨
板块: #开发调优
编号: 1997209
帖子: https://linux.do/t/topic/1997209
时间: 2026-04-18 22:41:22
摘要:
请教各位佬友一个问题, codex聊天记录除了本地存储外, 云端会有存储吗, 如果别人拿到账号密码登录是否能看到codex的历史记录
标题: 自己注册openai发现很多号都有plus试用,那么是否可以续杯个10年plus??
作者: #mengying
板块: #搞七捻三
编号: 1997214
帖子: https://linux.do/t/topic/1997214
时间: 2026-04-18 22:41:48
摘要:
无限续杯 ??一个月开一个plus使用,下个月换一个号??试用会一直保留么
标题: 4.6已下线的提示是any大善人自己设置的吗
作者: #欣欣|林可欣
板块: #搞七捻三
编号: 1997239
帖子: https://linux.do/t/topic/1997239
时间: 2026-04-18 22:45:23
摘要:
我真的看到了 什么底盘 什么摸 
一半熟悉一半陌生了已经 Chatbox里面,我现在已经完全不想用4.7了,完全用4.6
cc切换到4.6就会提示已下线 怎么也用不了
标题: 大项目+ claude 如何处理
作者: #Bitcoin
板块: #开发调优
编号: 1997240
帖子: https://linux.do/t/topic/1997240
时间: 2026-04-18 22:45:25
摘要:
请教各位佬友们 大佬们 ai先驱们 ,对于已经存在大量历史代码的项目 如何优化claude的用量和效果 感觉老项目 关联的逻辑特别多 随便一个功能 干出去很多token 公司也没有提供比较好用的模型, 只有一个qwen,自己买也是基本不可能付费上班
标题: 我做了很多小程序,但是基本上都是0访问,有大佬知道怎么优化吗
作者: #麻城东
板块: #运营反馈
编号: 1997251
帖子: https://linux.do/t/topic/1997251
时间: 2026-04-18 22:46:18
摘要:
如题,我在业余时间开发了很多小程序,有工具类的,也有实物类的。但是我不会运营,基本上都是0访问,偶尔有几个自然搜索量,同类型的排名也比较低。根据官方文档,也做了代码上的优化,但是效果几乎为0。有大佬知道怎么优化、运营吗?感谢!
标题: CPA 配置 大坑 之 Codex 启动后尝试连接 API 时,反复出现:502
作者: #kkjusdoit
板块: #搞七捻三
编号: 1997266
帖子: https://linux.do/t/topic/1997266
时间: 2026-04-18 22:47:42
摘要:
CPA + Codex 配置避坑指南
前言
本文记录了配置 CLI Proxy API (CPA) 与 Codex 集成时遇到的各种坑,希望能帮助后来者少走弯路。
环境信息


系统: macOS (Apple Silicon)


CPA 版本: v6.9.29


Codex 版本: 0.121.0


代理工具: ClashX / Clash Verge


核心问题:502 Bad Gateway
症状
Codex 启动后尝试连接 API 时,反复出现:

Unexpected status 502 Bad Gateway: Unknown error, url: http://localhost:8321/v1/responses


根本原因
系统代理拦截了 localhost 请求!
ClashX/Clash Verge 等代理工具默认会拦截所有 HTTP 请求,包括 localhost 和 127.0.0.1。当 Codex 尝试访问本地 CPA 服务时,请求被代理转发,导致:


请求无法直接到达本地服务


代理返回 502 错误


日志中看不到任何请求记录(因为请求根本没到达目标服务)


解决方案
方法 1:设置 NO_PROXY 环境变量(推荐)

# 添加到 ~/.zshrc 或 ~/.bashrc

export NO_PROXY="localhost,127.0.0.1"

# 应用配置

source ~/.zshrc


重要: 必须在新终端中启动 Codex,才能加载新的环境变量。
方法 2:配置代理绕过规则
在 ClashX/Clash Verge 中添加绕过规则,让 localhost 不走代理。
其他常见问题
1. API Key 不匹配 (401 Unauthorized)
症状:

Unexpected status 401 Unauthorized: {"error":"Invalid API key"}


原因:
Codex 使用了自己的 API key(格式如 sk-sub-Pack6n6
标题: 试图提供一些医学行业信息差
作者: #chimesz
板块: #搞七捻三
编号: 1997273
帖子: https://linux.do/t/topic/1997273
时间: 2026-04-18 22:48:24
摘要:
初来乍到,大概检索了一下似乎论坛里没有什么医疗行业的话题,佬们如果有任何健康、医学AI等问题我尽量回答
标题: cc web search 自定义的提供商不兼容。
作者: #wuyan🏆
板块: #搞七捻三
编号: 1997278
帖子: https://linux.do/t/topic/1997278
时间: 2026-04-18 22:49:01
摘要:
{"detail":[{"type":"missing","loc":["body","tools",0,"input_schema"],"msg":"Field required","input":{"type":"web_search_20250305","name":"web_search","max_uses":8}}]}

有什么配置或者什么操作可以重定向这个工具或者有什么解决办法吗。
我用的是 GitHub - ding113/claude-code-hub: 一个现代化的 Claude Code & Codex API 代理服务,提供智能负载均衡、用户管理和使用统计功能。 · GitHub
标题: 这种回复,我能拒绝给他们兑奖吗
作者: #oaoi
板块: #搞七捻三
编号: 1997288
帖子: https://linux.do/t/topic/1997288
时间: 2026-04-18 22:49:50
摘要:
不是为啥能发一样的,不是有检测吗可以这样吗 ,如果违规请删帖谢谢
标题: cliproxyapi 突然 崩了么?
作者: #jwctsc
板块: #搞七捻三
编号: 1997299
帖子: https://linux.do/t/topic/1997299
时间: 2026-04-18 22:50:43
摘要:
其中的模型表 空了,空了,是gpt 拿走了???
标题: 送一个 glm 的 7 天体验
作者: #发条兔子
板块: #福利羊毛
编号: 1997303
帖子: https://linux.do/t/topic/1997303
时间: 2026-04-18 22:51:01
摘要:
只能用 glm4.7,有效期到 4.23 号,官方给的量不多需要的佬友自取。 9c33f4b1b4284cccbd7f1cd6713cf54d.4q0Hc0PzzobDzRRE
使用文档
标题: 我试了一下x鱼上的3元 100刀
作者: #chccc
板块: #搞七捻三
编号: 1997329
帖子: https://linux.do/t/topic/1997329
时间: 2026-04-18 22:53:53
摘要:
不知道这个算啥,感觉是不便宜的,有没有佬来看看,不要问我怎么买,自己去搜关键字
标题: OPUS 4.7的智商已经降低到垫底了
作者: #Robin
板块: #搞七捻三
编号: 1997331
帖子: https://linux.do/t/topic/1997331
时间: 2026-04-18 22:54:07
摘要:
我甚至都不知道A​会不会道歉+清空流量。
自从更新了之后根本是bug都已经完全改不对了,已经打算强制回去4.6了