2013-05-01 25 views
0

在我的項目中,我在vendor/assets/javascriptsvendor/assets/stylesheets目錄中有第三方JavaScript和Css文件。在開發模式中,我可以使用javascript_include_tagstylesheet_include_tag方法引用這些目錄中的資產。爲什麼Rails不在供應商目錄中預編譯JavaScript和樣式表?

但是,當我運行rake assets:precompile命令並且隨後無法在生產中訪問時,這些腳本不會被預編譯。

是否有人可以說爲什麼vendor目錄中的資產被rake任務忽略?

回答

1

我能回答我自己的問題。

這對我來說並不明顯,但它確實有道理。除了application.cssapplication.js文件以外,所有其他.js/.css文件都會被預編譯rake任務忽略。因此,只要在application.js/.css文件中使用//= require name_of_script慣例引用腳本和樣式表,它們將會被附加到相關文件。

但是,如果你不希望某些腳本放在application.js/.css文件裏面做,那麼你需要明確地告訴你仍然希望他們使用config/environment/production.rb或其他初步認識的運行環境配置文件裏面這條線進行預編譯的Rails:

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) 
config.assets.precompile += %w(morris.min.js raphael.min.js) 
相關問題