如何修复Heroku应用上的图片加载失败问题
- 先检查静态资源服务配置:如果你的应用基于Node.js/Express开发,确保已经正确配置静态资源托管规则,比如添加
app.use('/assets', express.static('assets'))将assets目录映射为静态资源目录,否则Heroku默认不会暴露未配置路由的本地文件。 - 核对文件名大小写:Heroku使用的Linux文件系统大小写敏感,本地Windows/macOS系统默认大小写不敏感,所以需要确认实际文件名的大小写和代码里引用的
assets/icon.png完全一致,包括后缀名是否为小写的.png。 - 确认资源已被正确部署:检查项目的
.gitignore文件是否排除了assets目录或者.png后缀的文件,也可以执行heroku run bash登录到你的Heroku应用实例,执行ls assets命令查看icon.png文件是否真实存在于部署后的环境中。 - 修改引用路径为绝对路径:当前你使用的相对路径
assets/icon.png会基于当前页面的URL路径拼接资源地址,如果你的应用存在非根路径的路由,会导致资源地址拼接错误,将img标签的src属性修改为/assets/icon.png(开头加斜杠),强制从站点根路径开始定位资源。 - 确认静态站点配置:如果你的应用是纯静态站点,没有服务端逻辑,需要确认你已经配置了Heroku的静态资源buildpack,避免默认的运行环境不支持托管静态文件。
内容的提问来源于stack exchange,提问作者Abdulhakim
相关产品推荐
相关产品推荐

