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

问题描述 投票:9回答:2

在我看来,我说:

<%= 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"   

非常感谢你

ruby-on-rails ruby-on-rails-3
2个回答
11
投票

我找到了 !!!!!!!

添加到您的production.rb:

config.assets.digest = true

0
投票

如此railscast的最新部分所述,Rails 3.1将不再使用?hash cache expiring 。 它将在文件名本身中使用哈希作为资产。 不知道图像是否相同(尚未使用3.1),但它可能是你的问题。

© www.soinside.com 2019 - 2024. All rights reserved.