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

Rails生产环境报“资产管道中不存在图片”错误但开发环境运行正常

排查方案
  • 先执行生产环境强制预编译验证:在生产服务器项目根目录执行RAILS_ENV=production bundle exec rake assets:precompile,完成后执行ls public/assets | grep logo-white-no-background检查是否生成了对应带哈希戳的图片文件,如果存在就重启应用服务验证报错是否消失。
  • 核对生产环境资产配置:打开config/environments/production.rb文件,确认以下配置:
    • config.assets.precompile是否包含你存放该图片的目录,默认仅预编译app/assets/images下的资源,如果你把图片放在了vendor/assets或者自定义的资源目录,需要手动将目录加入预编译列表
    • 不要开启config.assets.compile动态编译,该配置会大幅降低生产环境性能,也会掩盖预编译配置问题
  • 解决文件名后缀兼容问题:开发环境默认开启动态资源查找,会自动匹配后缀名,生产环境预编译后资源会带哈希戳,无后缀的匹配逻辑会失效。你提到加后缀开发环境报错,是本地资产缓存导致的,先执行bundle exec rake assets:clobber清理本地缓存,再给image_tag补全正确的文件后缀(比如.png/.svg),测试开发环境正常后再推送生产。
  • 排查部署流程缓存问题:如果用了Capistrano、Docker等部署方式,确认部署流程是否会清理旧的预编译产物、是否正确拉取了最新的图片文件到服务器对应资源目录,避免用旧缓存的assets目录覆盖新文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 12:36:00