Rails 3.1.x - image_tag不在生产模式下使用预编译文件

时间:2011-08-31 23:26:44

标签: ruby-on-rails ruby-on-rails-3

在我看来,我说:

<%= image_tag("coin.png") %>

我的原始照片被放上:

app/assets/images/coin.png

但在生产模式下,image_tag生成的html代码为:

<img alt="Coin" src="/assets/coin.png">

而不是点击预编译资产:

coin-aba0e66819d64251cb3bb4bb29b26eb2.png

(当然我看不到图像)。

我没有忘记预编译我的资产。

我的环境/ production.rb是:

  config.cache_classes = true                                                                                                                                                                                   
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true                                                                                                                                                               
  config.serve_static_assets = false                                                                                                                                                                                                              
  config.assets.compress = true                                                                                                                                                                                                
  config.assets.js_compressor  = :uglifier
  config.action_dispatch.x_sendfile_header = "X-Accel-Redirect"   

非常感谢你

2 个答案:

答案 0 :(得分:11)

我找到了!!!!!!!

添加到您的production.rb:

config.assets.digest = true

答案 1 :(得分:0)

this railscasts的最新部分所述,Rails 3.1将不再使用?hash缓存过期。它将在文件名本身中使用哈希作为资产。不知道图像是否相同(尚未播放3.1),但它可能是你的问题。