2012-09-09 38 views
0

我有一個Rails應用程序,並嘗試將它部署到我的本地Apache服務器,現在正確。不能預編譯Rails應用程序中的所有CSS,雖然rake資產:預編譯

我試着通過命令rake assets:precompile預編譯css,javascript文件,並且沒有錯誤出現。

但是,我不能通過本地主機正常訪問網站,我檢查了生產日誌文件。

錯誤:

::的ActionView模板::錯誤(scaffolds.css未預編譯): 3: 4:Pragprog圖書在線商店 5: 6:<%= stylesheet_link_tag「腳手架「%> 7:<%= stylesheet_link_tag」depot「,:media =>」all「%> - > 8:<%= stylesheet_link_tag」分頁「%> 9:app/views/layouts/application。 html.erb:6:在 `_app_views_layouts_application_html_erb__1763484413904368549_ 70243433398420'

看來scaffolds.css不能用命令預編譯。

我已將配置更改爲config.assets.compile = true並且我的網站工作正常。 :) 但我想知道爲什麼命令不能預編譯該CSS。

+0

Rails不會嘗試預編譯scaffold.css,因爲您沒有告訴他。 –

+0

可能的重複http://stackoverflow.com/questions/7510920/asset-pipeline-trouble-on-deploying-my-rails-3-1-application-with-capistrano – AnkitG

回答

4

查覈在您production.rb這些線(或任何環境下你正在使用),它們可能仍然註釋掉:

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) 
# config.assets.precompile += %w(search.js) 

只需使用此選項來指定其他資產預編譯,例如:

config.assets.precompile += %w(*.js *.scss *.coffee *.css) 
+0

謝謝:) 它現在的作品 – code4j

+0

但是哪種方法更好? – code4j

+0

在生產中,最好預先編譯資產,因爲它們可以通過Web服務器(而不是應用程序服務器)作爲靜態資產提供。這大大加速了事情。如果使用'config.assets.compile = true',應用程序服務器將動態地編譯資源(或者在CSS的情況下),這比較慢。 –

1

出於好奇你是否將它添加到你的application.css清單文件?