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

如何将Digital Ocean主机中Golang项目的图片路径映射到网站?

解决静态图片访问问题

不需要连接Spaces Object Storage,本地目录就能搞定,问题出在Caddy的配置上,直接按下面的方法调整:

之前配置的问题

  1. 路径错误:你写的root * /assets是绝对路径,但实际assets目录在用户家目录下(比如/home/x/assets),Caddy无法识别这个相对用户目录的路径,必须用完整的绝对路径。
  2. 请求处理顺序错了:原配置里reverse_proxy放在前面,所有请求会先转发给Go服务,后面的file_server根本不会生效——而你的Go服务里没有这些动态上传的图片,自然访问失败。
  3. 冗余配置:单独写route指定单个文件完全没必要,直接匹配路径前缀即可覆盖所有同类请求。

正确的Caddy配置

替换成下面的配置,注意把/home/x/assets改成你实际的assets目录绝对路径(可以在assets目录下执行pwd获取完整路径):

x.ru {
    # 优先处理静态图片请求
    handle_path /static/img/* {
        root * /home/x/assets
        file_server
    }

    # 其余请求转发给Go服务
    reverse_proxy localhost:4000
}

配置说明

  • handle_path会匹配所有以/static/img/开头的请求,自动去掉前缀后去assets目录查找文件(比如请求/static/img/catalog/2/1708864387803037959.webp,Caddy会去/home/x/assets/static/img/catalog/2/1708864387803037959.webp读取,完全匹配你的文件结构)。
  • 非静态图片的请求(比如后台管理、接口调用)仍会正常转发给Go服务,不影响原有功能。

改完配置后重启Caddy服务(比如执行systemctl restart caddy),再访问图片路径就能正常打开了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 23:47:29