问题描述
官方 Docker 镜像 zyronon/typewords:latest(v3.0.4,2026-08-16 构建)自部署后,词库/文章列表等静态资源请求全部 404:
https://files.typewords.cc//list/article.json —— 多一个 /(双斜杠,404)
https://files.typewords.cc/dicts/en/word/xxx.json → 去掉尾斜杠后变成 https://files.typewords.ccdicts/... —— 少一个 /(404)
单斜杠 URL 均正常(200)。与部署环境无关,本地与服务器复现一致。
根因
两处 URI 拼接问题:
app/core/config/env.ts(v3.0.4 L22):RESOURCE_URL: 'https://files.typewords.cc/' 带尾斜杠,与 L53-56 的 ENV.RESOURCE_URL + '/list/word.json'(前导斜杠)拼接 → 双斜杠 //list/...
app/core/utils/index.ts _getDictDataByUrl()(v3.0.4 L367/369):ENV.RESOURCE_URL + \dicts/...`**无前导斜杠**,与 list 的拼接风格不一致——若把 RESOURCE_URL 尾斜杠去掉,dicts 又会变成...ccdicts/...`
补充:d18f1d0 已修复 dicts 的前导斜杠,但 v3.0.4 tag 与 Docker Hub 镜像未包含该修复,用户 pull 到的 latest 仍是坏的。
建议
- 合入
d18f1d0 后重新构建并推送 Docker 镜像(自部署用户受影响面最大)
- 源码层加防御,防止复发(全项目共 9 处
ENV.RESOURCE_URL + path 拼接:list×4、dicts×2、audio×2、sound×1):
RESOURCE_URL 定义处统一 replace(/\/+$/, '') strip 尾斜杠
- 或统一改用
new URL(path, baseURL) / 抽一个 joinUrl() 工具函数拼接
复现环境
- 镜像:
zyronon/typewords:latest(sha256 对应 v3.0.4,2026-08-16 11:05 UTC 构建)
- nginx 静态部署,端口任意;浏览器 Network 面板可见上述 URL
问题描述
官方 Docker 镜像
zyronon/typewords:latest(v3.0.4,2026-08-16 构建)自部署后,词库/文章列表等静态资源请求全部 404:https://files.typewords.cc//list/article.json—— 多一个/(双斜杠,404)https://files.typewords.cc/dicts/en/word/xxx.json→ 去掉尾斜杠后变成https://files.typewords.ccdicts/...—— 少一个/(404)单斜杠 URL 均正常(200)。与部署环境无关,本地与服务器复现一致。
根因
两处 URI 拼接问题:
app/core/config/env.ts(v3.0.4 L22):RESOURCE_URL: 'https://files.typewords.cc/'带尾斜杠,与 L53-56 的ENV.RESOURCE_URL + '/list/word.json'(前导斜杠)拼接 → 双斜杠//list/...app/core/utils/index.ts_getDictDataByUrl()(v3.0.4 L367/369):ENV.RESOURCE_URL + \dicts/...`**无前导斜杠**,与 list 的拼接风格不一致——若把 RESOURCE_URL 尾斜杠去掉,dicts 又会变成...ccdicts/...`补充:
d18f1d0已修复 dicts 的前导斜杠,但 v3.0.4 tag 与 Docker Hub 镜像未包含该修复,用户 pull 到的 latest 仍是坏的。建议
d18f1d0后重新构建并推送 Docker 镜像(自部署用户受影响面最大)ENV.RESOURCE_URL + path拼接:list×4、dicts×2、audio×2、sound×1):RESOURCE_URL定义处统一replace(/\/+$/, '')strip 尾斜杠new URL(path, baseURL)/ 抽一个joinUrl()工具函数拼接复现环境
zyronon/typewords:latest(sha256 对应 v3.0.4,2026-08-16 11:05 UTC 构建)