2011-08-31 36 views
9

在我的看法,我把:Rails的3.1.X - IMAGE_TAG不使用預編譯的文件在生產模式

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

謝謝你很多

回答

11

我發現它!!!!!!!

添加到您的production.rb:

config.assets.digest = true 
+3

你搖滾。我有一個rc.5安裝,在沒有新選項的情況下工作。 – nasmorn

+0

謝謝你。另外,爲了解決sass文件中的相同問題,我必須用「image-url('foo.png')」替換「<%= asset_path('foo.png')%>」。 – Thilo

+0

非常感謝。隨着時間的推移,此應用程序已從2.x升級到4.x。原來,它加載了舊的非哈希資產'header.jpg',並且完全忽略了'header-asdlfk12l3k4.jpg'。這個選項是缺少的。 – kimos

0

正如this railscasts的Rails 3.1的最新部分表示將不使用?hash緩存到期了。它將在文件名中爲資產使用散列。不知道圖像是否相同(還沒玩過3.1),但這可能是你的問題。

+0

是完全是我錯了,但同樣的問題。無論如何感謝 – Unitech

相關問題