在生产中,为image_tag助手生成的html会返回404错误。 资产管道已启用
在haml文件中
=image_tag "how_it_works_1.jpg"
how_it_works_1.jpg文件位于app / assets / images / how_it_works_1.jpg
当我使用mina部署生产时,我可以在current / public / assets下找到此资产/ how_it_works_1-5e40b2326fc14e879ae476a3fd6aef97.jpg
然而,生成的html不指向此资产,而是指向/images/how_it_works_1.jpg返回404
<img src="/images/how_it_works_1.jpg"/>
它正在开发环境
下工作<img src="/assets/how_it_works_1.jpg"/>
编辑: 我和乘客一起使用apache2.4 这是我的production.rb的摘录:
config.serve_static_assets = false
config.assets.js_compressor = :uglifier
config.assets.css_compressor = :sass
config.assets.compile = true
config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
config.assets.digest = true
config.assets.version = '1.0'
答案 0 :(得分:1)
你必须先运行它。我以前自己也遇到过这个问题。
rake assets:precompile RAILS_ENV=production
然后重新加载服务器。
答案 1 :(得分:0)
您的资产似乎已成功预编译。但是,Rails默认拒绝在生产中提供静态资产。 This Rails guide有更多信息。 (config.serve_static_assets
的Ctrl-F)
要回答您的问题,您需要配置您的Web服务器(是Apache,nginx还是其他?),以便从部署的public/assets/
目录中提供静态资产。
如果您编辑问题以包含您的网络服务器,我可以为您提供指向更具体说明的链接。干杯!
答案 2 :(得分:0)
在config / environments / production.rb中似乎config.assets.digest
不正确(默认情况下应该为true)。