2011-11-17 51 views

回答

22

當對包含CoffeeScript資源的視圖發出請求時,CoffeeScript會按需編譯爲JavaScript。

但是,您可以使用以下具有的CoffeeScript編譯爲JavaScript的時間提前:

rake assets:precompile 

對Rails的資產管線的詳細信息請參見本link

從鏈接:

對資產使用的文件擴展名確定哪些應用 預處理。當使用默認的Rails gemset生成控制器或腳手架 時,CoffeeScript文件和SCSS文件是 而不是常規的JavaScript和CSS文件。之前使用的示例 是名爲「projects」的控制器,該控制器生成了應用/ assets/javascripts/projects.js.coffee和 app/assets/stylesheets/projects.css.scss文件。

當這些文件被請求時,它們由咖啡腳本和sass-rails gems提供的處理器 處理,然後分別作爲JavaScript和CSS發回 到瀏覽器。

...

資產在服務器 啓動後,編譯和緩存在第一次請求。鏈接設置一個必須重新驗證的緩存控制HTTP標頭 以減少後續請求的請求開銷 - 在這些 瀏覽器中獲得304(未修改)響應。

如果任何在清單中的文件已請求之間變化, 服務器用新編譯的文件進行響應。

...

Rails有一個rake任務來編譯資產捆綁體現在管道輸送到磁盤 和其他文件。

編譯資產被寫入到 config.assets.prefix指定的位置。默認設置將使用公共/資產 目錄。

您必須使用此任務無論是在部署過程中或在本地,如果你 沒有到生產文件系統的寫訪問。

rake任務是:

束EXEC耙資產:預編譯

UPDATE: 對於那些有興趣在發展預編譯的資產,首先設置RAILS_ENV變量的發展(從here):

RAILS_ENV=development bundle exec rake assets:precompile 
+2

這是關於生產環境的一切嗎?關於開發環境呢? – Jaseem

+0

已更新,以解決開發環境。 –

相關問題