2012-06-13 65 views
4

當我這樣做: 耙資產:預編譯RAILS_ENV =生產 我得到例如下面的文件在我的公共/資產的文件夾:爲什麼軌預編譯任務也非消化資產

  • 應用7af6c31514bcdd4cce3c96892af4487f。 JS
  • 應用7af6c31514bcdd4cce3c96892af4487f.js.gz
  • 的application.js
  • application.js.gz

最後2個是一個問題,因爲它會導致編譯後的版本在開發中服務,我不明白爲什麼它們正在生成。

我在production.rb以下行:

config.assets.digest = true 
+0

我想我遇到同樣的問題。在我的開發環境中,javascript在資產之後被打破:預編譯,但是在生產中它工作正常。仍然不知道如何解決它,我已經刪除公用文件夾中的所有文件。 –

回答

6

要停止非散列文件名的創建在公共場合使用:

rake assets:precompile:primary RAILS_ENV=production 
+0

PS我在這裏寫了一些其他相關的東西:http://www.damon.io/blog/2012/04/23/rails-bootstrap-heroku/ –

+0

是的,這對我有效。謝謝! – pguardiario

2

這是資產編譯器的正常行爲,主要發生在錯誤頁面使用等等(其中非消化文件您無法訪問MD5哈希),目前無法關閉它們。此外,這個問題幾乎是相同的這個:Rails compiles assets both with and without md5 hash, why?

+0

我看過那篇文章,似乎@NudeCanalTroll找到了一種方法來關閉它,但不知道他是如何做到的,並希望他沒有做到。 *嘆息* – pguardiario

+0

我只是刪除我編譯的資產,並不重新生成它們,直到我需要在生產模式下進行測試和/或準備部署。在我看來,問題不在於這些文件的存在,而是Rails在開發模式下運行時更喜歡它們超過應用程序/資產中的原始內容。 –