Vue3 知识点速查:把 Vite 代理 endpoint 改到 TaoToken 的完整配置清单
1. Vue3 项目本地开发 401 与 local proxy failed 的真实场景如果你正在用 Vue3 Vite 做本地开发大概率遇到过这种画面页面能打开接口一调就红控制台里躺着401 Unauthorized终端里刷着http proxy error或者local proxy failed。前端代码明明没改昨天还能跑今天换了个接口地址就全挂了。这类问题在 Vue3 项目里特别常见因为 Vite 的 devServer 代理配置和 Vue2 时代的 webpack devServer 写法有差异很多人直接把老项目的proxyTable搬过来结果路径重写、环境变量、鉴权头全对不上。先说清楚这篇要解决什么。核心检索词是Vue3 Vite 代理配置具体场景是把本地开发时前端发出的请求通过 Vite 的server.proxy转发到 TaoToken 的 API 通道让鉴权在代理层统一处理避免每个请求都手动带 Key也避免浏览器直连时的跨域和 401。适合谁看正在用 Vue3 Vite 做项目、需要调用大模型接口、被 401 和代理失败卡住的前端开发者。如果你只是写纯静态页面不调接口这篇可以先收藏。为什么会出现 401通常有三种来源。第一种是请求根本没带Authorization头TaoToken 的 API 需要 Bearer Token 鉴权前端如果只在某个 axios 实例里加了拦截器换一个 fetch 调用就漏了。第二种是代理转发时把请求头丢了Vite 的proxy默认会转发大部分头但如果你用了rewrite或者configure改写了请求可能把Authorization覆盖掉。第三种是环境变量没生效.env.local里写了VITE_API_KEY但代码里读的是import.meta.env.VITE_API_KEY构建时没注入运行时就是undefined请求头变成Bearer undefined服务端自然返回 401。local proxy failed则是另一类问题。Vite 的代理基于http-proxy当目标地址不可达、DNS 解析失败、或者changeOrigin没开导致 Host 头不匹配时终端就会打印这个错误。还有一种情况是代理路径写错比如前端请求/api/chat代理配置的target是https://taotoken.net/api但rewrite把/api去掉了实际转发到https://taotoken.net/api/chat还是https://taotoken.net/chat路径一错服务端返回 404 或 401浏览器看到的就是代理失败。我试过在一个 Vue3 后台项目里把原本指向自建 mock 服务的代理切到 TaoToken结果因为rewrite规则写成了path.replace(/^\/api/, )导致所有请求都少了/api前缀TaoToken 的接口全部 401。后来把 rewrite 去掉改成在target里带上/api问题立刻消失。这个坑很典型下面会给出正确的配置片段。在动手改配置之前先确认你的项目结构。典型的 Vue3 Vite 项目根目录下有vite.config.ts、.env.development、.env.localsrc里可能有utils/request.ts或api/index.ts。代理配置写在vite.config.ts的server.proxy里环境变量通过loadEnv读取。如果你用的是create-vite生成的模板vite.config.ts默认只有插件配置需要自己加server段。确认这些之后就可以进入下一步把 TaoToken 的接入信息准备好。2. TaoToken 前置准备Base URL、API Key 与 Model ID 三件套在改 Vite 代理之前先把 TaoToken 这边的三件套拿到手否则代理配好了也不知道往哪转。三件套指的是Base URL、API Key、Model ID这三个东西缺一个请求都跑不通。Base URL 是接口的根地址TaoToken 的 API 地址是https://taotoken.net/api注意这里不带 UTM 参数UTM 只用于官网跳转统计API 调用不需要。API Key 是你的鉴权凭证在控制台的 API Keys 页面创建创建后只显示一次复制下来存到本地环境变量里不要硬编码到代码里提交到 Git。Model ID 是你实际要调用的模型标识比如claude-sonnet-4-5之类的字符串具体以控制台模型列表为准。获取 API Key 的路径打开 TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content登录后进入控制台找到 API Keys 菜单点击创建。创建时可以给 Key 起个名字比如vue3-dev-local方便区分不同项目。创建完成后立刻复制页面刷新后就看不到了。如果你已经有 Key直接复用也行但建议本地开发用单独的 Key方便出问题时快速吊销。拿到 Key 之后先别急着写代码用 curl 验证一下 Key 是否有效。这一步很关键因为如果 Key 本身有问题后面代理配得再对也是 401。打开终端执行下面这条命令把YOUR_API_KEY替换成你实际的 Keycurl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer YOUR_API_KEY \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-5, messages: [{role: user, content: ping}], max_tokens: 16 }如果返回里有choices字段说明 Key 和 Base URL 都没问题。如果返回 401检查 Key 是否复制完整、有没有多余空格。如果返回 404检查路径是不是/api/v1/chat/completions有些模型走的是/api/v1/messages具体看文档。如果返回model not found说明 Model ID 写错了去控制台模型列表里核对。这一步跑通之后再进入 Vite 代理配置能省掉大量排查时间。关于 Model ID不同模型的标识不一样有的带版本号有的带日期后缀。建议在控制台的模型对话页面先手动发一条消息确认模型可用再把 Model ID 抄到项目里。TaoToken 的模型对话入口在https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content可以直接在网页上测试。如果你打算长期在项目里用某个模型建议把 Model ID 也放到环境变量里方便切换。还有一个容易被忽略的点TaoToken 的 API 支持流式返回Vue3 项目里如果用 fetch 的ReadableStream或者 axios 的onDownloadProgress处理流式数据代理层需要确保不缓冲响应。Vite 的http-proxy默认是流式转发的但如果你在configure里加了proxyRes处理可能会破坏流。这个在后面的配置片段里会注意。三件套准备好之后就可以开始写vite.config.ts了。3. 可复制配置vite.config.ts 代理片段与环境变量写法这一节是全文的核心直接给可复制的配置。先看vite.config.ts的完整写法。假设你的项目根目录是my-vue3-app配置文件路径是my-vue3-app/vite.config.ts。下面这段配置把/api开头的请求代理到 TaoToken并且自动带上鉴权头import { defineConfig, loadEnv } from vite import vue from vitejs/plugin-vue export default defineConfig(({ mode }) { const env loadEnv(mode, process.cwd(), ) return { plugins: [vue()], server: { port: 5173, proxy: { /api: { target: https://taotoken.net, changeOrigin: true, secure: true, rewrite: (path) path.replace(/^\/api/, /api), configure: (proxy) { proxy.on(proxyReq, (proxyReq) { const key env.VITE_TAOTOKEN_API_KEY if (key) { proxyReq.setHeader(Authorization, Bearer ${key}) } }) } } } } } })这段配置有几个关键点。target写https://taotoken.net不带/api因为rewrite里保留了/api前缀最终转发到https://taotoken.net/api/...。changeOrigin: true必须开否则 Host 头不匹配会导致代理失败。secure: true表示校验 SSL 证书本地开发保持 true 即可。configure里的proxyReq钩子从环境变量读取 Key动态设置Authorization头这样前端代码里完全不用管鉴权所有走/api的请求都会自动带上。环境变量文件放在项目根目录文件名.env.local内容如下VITE_TAOTOKEN_API_KEYsk-你的实际Key VITE_TAOTOKEN_MODELclaude-sonnet-4-5 VITE_TAOTOKEN_BASE_URL/api注意VITE_前缀是 Vite 的约定只有带这个前缀的变量才会暴露给客户端代码。.env.local默认会被 Git 忽略不要提交。如果你团队协作需要共享非敏感配置可以放.env.development但 Key 一定只放.env.local。VITE_TAOTOKEN_BASE_URL设为/api前端 axios 的baseURL直接读这个值请求就会走代理。前端请求层可以这样写路径src/utils/request.tsimport axios from axios const request axios.create({ baseURL: import.meta.env.VITE_TAOTOKEN_BASE_URL || /api, timeout: 60000, headers: { Content-Type: application/json } }) request.interceptors.response.use( (response) response.data, (error) { if (error.response?.status 401) { console.error(鉴权失败检查 VITE_TAOTOKEN_API_KEY 是否生效) } return Promise.reject(error) } ) export default request调用时直接request.post(/v1/chat/completions, { model: import.meta.env.VITE_TAOTOKEN_MODEL, messages: [...] })请求会先到 Vite devServer 的/api再被代理到 TaoToken鉴权头由代理层注入。这样前端代码里看不到 Key也不会因为漏加拦截器导致 401。如果你用的是settings.json风格的配置管理比如某些工具链需要 JSON 格式可以建一个taotoken.config.json{ baseUrl: https://taotoken.net/api, apiKeyEnv: VITE_TAOTOKEN_API_KEY, model: claude-sonnet-4-5, proxyPath: /api }这个文件只作为配置参考实际运行时还是以vite.config.ts和环境变量为准。注意不要把真实 Key 写进 JSON 文件只写环境变量名。配置写完后重启 devServernpm run dev让 Vite 重新加载vite.config.ts和环境变量。热更新不会重新读代理配置必须重启。4. 验证请求curl 与浏览器双通道确认鉴权生效配置改完怎么确认真的生效了分两步验证。第一步用 curl 直接打 Vite devServer 的代理地址第二步在浏览器里看实际请求。先确保 devServer 已经启动终端显示Local: http://localhost:5173/。然后新开一个终端执行curl -i -X POST http://localhost:5173/api/v1/chat/completions \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-5, messages: [{role: user, content: hello}], max_tokens: 16 }注意这里请求的是localhost:5173不是taotoken.net而且没有手动加Authorization头。如果代理配置正确Vite 会把请求转发到 TaoToken并在转发时注入 Key。返回结果里应该能看到choices字段。如果返回 401说明proxyReq钩子没生效检查env.VITE_TAOTOKEN_API_KEY是否读到了值可以在configure里加一行console.log(key loaded:, !!key)调试。如果返回 404检查rewrite和target的组合确认最终路径是https://taotoken.net/api/v1/chat/completions。第二步在浏览器里验证。打开 Vue3 页面触发一个调用接口的操作然后在 DevTools 的 Network 面板里找到对应的请求。请求 URL 应该是http://localhost:5173/api/v1/chat/completions状态码 200。点开请求详情看 Request Headers 里有没有Authorization注意浏览器里看到的请求头是前端发出的代理注入的头在浏览器里看不到所以这里看不到Authorization是正常的。要看代理注入的头得在终端里看 Vite 的日志或者在proxyReq钩子里打印。如果想确认代理层确实注入了头可以在vite.config.ts的configure里临时加日志configure: (proxy) { proxy.on(proxyReq, (proxyReq) { const key env.VITE_TAOTOKEN_API_KEY console.log([proxy] injecting auth:, !!key) if (key) { proxyReq.setHeader(Authorization, Bearer ${key}) } }) proxy.on(error, (err) { console.error([proxy] error:, err.message) }) }重启 devServer 后每次请求都会在终端打印[proxy] injecting auth: true。如果打印 false说明环境变量没读到检查.env.local文件名和位置。Vite 只加载项目根目录下的.env文件如果你的项目是多包结构process.cwd()可能不是根目录需要调整loadEnv的第二个参数。还有一个验证技巧用curl直接打 TaoToken 的 API对比代理请求的返回。如果直连成功、代理失败问题一定在代理层如果直连也失败问题在 Key 或 Model ID。直连命令前面已经给过把YOUR_API_KEY换成实际值即可。两个通道都跑通后说明整条链路没问题可以开始写业务代码了。5. 本篇常见错误排查401、local proxy failed、reading choices、OAuth这一节对照真实报错逐个排查。第一个高频错误是401 Unauthorized。前面说过三种来源这里给具体的排查顺序。先看终端有没有[proxy] injecting auth: true如果没有说明环境变量没读到检查.env.local是否在项目根目录、变量名是否以VITE_开头、devServer 是否重启过。如果有injecting auth: true但依然 401用 curl 直连 TaoToken 验证 Key 本身是否有效。如果直连也 401去控制台重新生成 Key。如果直连成功、代理 401检查proxyReq.setHeader是否被后续的rewrite或configure覆盖确保setHeader在proxyReq事件里执行。第二个错误是local proxy failed或http proxy error。这个错误通常伴随ECONNREFUSED或ENOTFOUND。ECONNREFUSED表示目标地址拒绝连接检查target是否写成了http://而不是https://TaoToken 的 API 是 HTTPS。ENOTFOUND表示 DNS 解析失败检查target域名拼写taotoken.net不要写成taotoken.com。还有一种情况是本地网络环境导致 HTTPS 握手失败可以临时把secure设为false测试但生产环境不要这么做。如果错误信息里有socket hang up可能是请求体太大或超时调整timeout配置。第三个错误是Cannot read properties of undefined (reading choices)。这个报错说明请求返回了但返回结构里没有choices字段。常见原因是 Model ID 写错服务端返回了错误信息而不是正常的 completion 结构。排查方法在request.interceptors.response里打印完整响应看error.response.data里的error.message。如果是model not found去控制台核对 Model ID。如果是invalid request检查请求体格式messages必须是数组每个元素有role和content。还有一种情况是流式返回被当成了普通 JSON 解析如果你用了stream: true响应是 SSE 格式不能用response.data.choices直接取需要逐行解析data:前缀。第四个错误和 OAuth 相关。有些项目集成了第三方登录或 OAuth 流程回调地址配的是localhost:5173但代理把/oauth/callback也转发到了 TaoToken导致回调失败。解决方法是把 OAuth 相关路径排除在代理之外在vite.config.ts里加一条更具体的代理规则或者用bypass函数跳过proxy: { /api: { target: https://taotoken.net, changeOrigin: true, bypass: (req) { if (req.url?.startsWith(/api/oauth)) { return req.url } }, // ...其他配置 } }bypass返回req.url表示不代理直接由 Vite 处理。这样 OAuth 回调就不会被转发到 TaoToken。如果你用的是 Claude Code 或 Cline 这类工具配置里出现auth.json或settings.json确保 Base URL 写https://taotoken.net/apiKey 写实际值Model ID 写控制台里的标识三件套缺一不可。CC Switch 或 Cline MCP 的配置也是同样的三件套逻辑Base URL、Key、Model ID 都要对。最后一个容易忽略的错误是代理路径重复。比如target写了https://taotoken.net/apirewrite又保留了/api最终路径变成https://taotoken.net/api/api/v1/...返回 404。检查方法在proxyReq里打印proxyReq.path看最终路径是否正确。正确的路径应该是/api/v1/chat/completions对应target是https://taotoken.net。如果target带了/apirewrite就要把/api去掉。两种写法二选一不要混用。6. 语义一致 CTA把请求链路统一到 TaoToken 通道配置跑通之后你的 Vue3 项目本地开发请求链路就统一了前端发/api/...Vite devServer 代理转发代理层注入鉴权头TaoToken 返回结果。这条链路的好处是前端代码零鉴权逻辑换环境只改环境变量不碰业务代码。如果你还在用直连方式每个请求手动加Authorization一旦漏加就 401排查起来很费时间。接下来按场景分流。如果你主要是排障和接入需要经常查 API Key 和接入文档建议把这两个页面存到书签API Keys 管理在https://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content接入文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。文档里有不同语言的调用示例包括 curl、Python、Node.js对照着改前端请求体格式很方便。如果你需要先验证模型效果再决定用哪个去模型对话页面手动测试https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。在网页上发几条消息确认模型响应速度和输出质量符合预期再把 Model ID 抄到项目里。这样比在代码里反复试错快得多。如果你打算长期在项目里用 TaoToken 做编码辅助或 Agent 开发比如集成到 Claude Code、Cline 或者自建的 coding agent 里可以了解 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。Coding Plan 针对长期编码场景做了额度优化适合每天都要调接口的开发者。配置方式和本文的 Vite 代理一样三件套不变只是使用场景从本地开发扩展到日常编码工作流。最后给一个实用技巧把vite.config.ts里的代理配置抽成一个函数方便在多个项目里复用。比如建一个proxy.config.ts导出createProxy(env)函数不同项目引入后传入自己的环境变量即可。这样下次新项目接入 TaoToken复制一个文件就行不用重新写一遍。代理配置里的configure钩子也可以抽出来统一处理鉴权头注入和错误日志。配置一次多处复用这才是把请求链路统一到 TaoToken 通道之后最省事的地方。

相关新闻

大数据分析驱动的农业气象灾害预警实战指南

大数据分析驱动的农业气象灾害预警实战指南

简介:数据驱动的智能决策正深刻改变传统气象服务模式。在农业领域,气象灾害预警依赖对海量观测数据的实时处理与时空关联分析。通过引入大数据处理框架和机器学习模型,能够从站点观测、格点再分析等多源数据中提取灾害演变的规律,…

2026/10/17 22:46:44 阅读更多 →
Kepserver 连接 MySQL 实战:ODBC 驱动配置与数据落地避坑指南

Kepserver 连接 MySQL 实战:ODBC 驱动配置与数据落地避坑指南

简介:这份PDF资料面向工业自动化与数据采集方向的工程师及运维人员,聚焦Kepserver与MySQL数据库的对接场景,解决设备数据落库与可视化管理的实际问题。内容涵盖MySQL数据库安装、Navicat可视化管理工具的安装与破解、32位ODBC驱动配置&#x…

2026/10/17 22:46:44 阅读更多 →
Netty NIO核心组件详解:Buffer、Channel、Selector原理与实战

Netty NIO核心组件详解:Buffer、Channel、Selector原理与实战

1. 从一次线上故障说起:为什么我要回头啃Netty的NIO底座前两年我接手过一个即时通讯服务的性能优化项目,单机压测的时候QPS死活上不去,CPU占用率却高得离谱。当时第一反应是业务代码写得有问题,排查了一圈发现线程池配置、锁竞争、…

2026/10/17 22:46:44 阅读更多 →

最新新闻

VLN工程落地七步法:从R2R复现到真实场景鲁棒导航

VLN工程落地七步法:从R2R复现到真实场景鲁棒导航

1. 项目概述:当视觉语言导航遇上ECCV前沿——不是教机器人认路,而是让它“边想边走”ECCV 2026 视觉语言导航(VLN)与导航专题这个标题,乍看像学术会议议程里的一行小字,但背后藏着一个正在剧烈演进的技术拐…

2026/10/17 23:43:42 阅读更多 →
C++文字探险游戏开发:状态机、随机地图与存档调参实践

C++文字探险游戏开发:状态机、随机地图与存档调参实践

“C摸金1.0普通版”是我最近用空闲时间写完的一个控制台文字探险游戏。没有图形界面,没有声音,连鼠标都不需要,所有交互都在黑色窗口里敲数字和字母完成。玩法概括起来就是:你进入一座随机生成的虚构地宫,在有限的体力…

2026/10/17 23:43:42 阅读更多 →
Oracle EBS财务模块详解:从手工账本到中央账务处理器

Oracle EBS财务模块详解:从手工账本到中央账务处理器

简介:Oracle EBS财务模块学习资料,面向ERP初学者、财务信息化从业者及企业财务管理人员,帮助系统理解Oracle电子商务套件在财务管理领域的核心功能与实施思路。资料以docx文档形式呈现,压缩包内共1个文件,大小约32KB&a…

2026/10/17 23:42:42 阅读更多 →
拆解Qwen-Image-2.1-mflux-q4目录结构:text_encoder、transformer、vae与processor各司其职

拆解Qwen-Image-2.1-mflux-q4目录结构:text_encoder、transformer、vae与processor各司其职

【免费下载链接】Qwen-Image-2.1-mflux-q4 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/Qwen-Image-2.1-mflux-q4 点击查看 免费下载 Qwen-Image-2.1-mflux-q4 是一个面向 Apple 芯片的文生图(text-to-image)模型仓库&#…

2026/10/17 23:42:42 阅读更多 →
5分钟快速上手GNM:从零安装到渲染你的第一个3D头部网格(新手教程)

5分钟快速上手GNM:从零安装到渲染你的第一个3D头部网格(新手教程)

【免费下载链接】gnm-v3 项目地址: https://ai.gitcode.com/hf_mirrors/google/gnm-v3 点击查看 免费下载 本教程带你用 GNM(Generative aNthropometric Model,生成式人体测量模型)快速渲染出第一个 3D 头部网格(3D h…

2026/10/17 23:42:42 阅读更多 →
交叉熵损失、可调节参数与LoRA:大模型微调核心链路全解析

交叉熵损失、可调节参数与LoRA:大模型微调核心链路全解析

交叉熵损失&大模型可调节参数&LoRA搞大模型微调的人,一定绕不开这三样东西:损失函数怎么算、超参数怎么调、参数高效微调用什么手法。这三个词看着各自独立,其实是一条完整链路——交叉熵损失告诉你模型学得好不好,可调节…

2026/10/17 23:41:41 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →