You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker部署Caddy时如何将文件服务挂载到/license子路径

配置失效原因
  • 路径匹配范围不足:你编写的handle /license仅能精准匹配$MYDOMAIN/license这一个路径,无法覆盖/license/、/license/index.html、/license/static/css/app.css这类子路径请求,站点的静态资源、子页面都会直接返回404。
  • 路径拼接逻辑错误:Caddy默认会把请求的URI路径拼接在root指定的目录后查找文件,当你访问/license时,会实际查找/etc/license/license目录下的文件,但你的站点资源都直接存放在/etc/license根目录,自然找不到对应文件。
修复方案

使用handle_path指令替代普通handle即可,handle_path会自动剔除匹配到的路径前缀,不需要手动做URI重写,同时把匹配规则改为/license/*覆盖所有子路径,参考配置如下:

$MYDOMAIN {
  handle_path /license/* {
    root * /etc/license
    file_server
  }

  # 保留原有其他路由配置
}

如果配置后站点静态资源仍加载失败,检查站点内部是否使用了/开头的绝对路径引用资源,把这类资源引用改为相对路径(例如./static/css/app.css),或者统一加上/license前缀即可。

内容的提问来源于stack exchange,提问作者RailTracer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 04:45:02