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

生产环境未引用带指纹的静态资源,请求排查配置问题

问题排查与解决思路
  • 检查manifest文件位置:Rails生产环境需要从public/assets/.sprockets-manifest-xxx.json读取资源指纹映射。你提到manifest在current/assets_manifest_backup/目录下,这是错误的位置。确保预编译后manifest文件存放在public/assets目录下,Capistrano部署时不要移动或备份这个文件到其他路径。

  • 确认图片资源被纳入预编译:虽然Rails默认会预编译app/assets/images下的所有文件,但如果你的图片在自定义目录,或者配置了config.assets.precompile覆盖了默认规则,需要确保union_15.png被包含。可以修改config/initializers/assets.rb,添加图片到预编译列表:

    Rails.application.config.assets.precompile += %w( initialise.css pdf.css union_15.png )
    

    或者更通用地包含所有图片:

    Rails.application.config.assets.precompile += %w( *.png *.jpg *.gif )
    
  • 检查production.rb的assets配置:确保以下配置正确:

    config.assets.digest = true # 启用指纹,生产环境默认开启,需确认未被修改
    config.assets.compile = false # 生产环境禁用动态编译,依赖预编译文件
    config.assets.prefix = '/assets' # 确保资源前缀是/assets,而非/images
    
  • 验证public/assets目录的文件完整性:登录服务器,检查current/public/assets下是否存在union_15-xxx.png文件,以及对应的manifest文件。如果文件缺失,重新执行预编译并确保部署过程正确同步文件。

  • 检查image_tag的调用是否正确:确保没有在image_tag中指定:src选项覆盖asset pipeline的路径,保持image_tag('union_15')的写法即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:45:59