2013-01-06 149 views
0

我的css文件在開發中正常工作。Rails 3.2.10未在生產中預編譯的資產

我的產品應用程序失敗,出現500錯誤。生產日誌文件顯示CSS文件被編譯

Compiled screen/fluid/nav.css (0ms) (pid 16607) 

那麼這個錯誤:

Started GET "/login" for 118.211.236.235 at 2013-01-06 01:29:10 +0000 
Processing by SessionsController#new as HTML 
    Rendered sessions/new.html.erb within layouts/application (9.5ms) 
Completed 500 Internal Server Error in 112ms 

ActionView::Template::Error (avetmiss.css isn't precompiled): 

該文件沒有列出application.css但似乎無論如何編譯。這裏是我的application.css文件:

/* 
*= require_self 
*= require_tree ./screen 
*/ 

的另一個問題是,我在我的application.html文件打印的CSS是這樣的:

<%= stylesheet_link_tag 'application-print', :media => 'print' -%> 

此文件並不是在所有的預編譯。我是否需要將它放在production.rb中,如下所示的預編譯指令中?該指令是否應該放入production.rb或application.rb中?

config.assets.precompile += %w(application-print.css) 

是否需要添加不是控制器資源的每個css和js文件在上述的預編譯語句中?

回答

0

看起來這些文件未包含在部署的預編譯步驟中。

假設應用print.css和avetmiss.css是在app /資產/樣式表,直接與

/* 
*= require self 
*= require tree ./screen 
*= require avetmiss 
*/ 

要求他們在你的application.css另外,如果您想包括在所有的CSS文件您的應用程序/資產/樣式表文件夾,然後在你的application.css,簡單地說:

/* 
*= require self 
*= require tree . 
*/ 

The Rails Guide for Assets對我來說是非常有幫助的。

***編輯

爲您的打印的CSS - 我認爲你需要爲它預編譯指令,這樣就不會被包含在application.css

config.assets.precompile += %w(application-print.css) 
+0

這不會對工作我作爲application-print.css文件包含一個print.css的清單,它將刪除我的部分佈局。我需要將這個文件從application.css中取出。 – markhorrocks

+0

我想我沒有弄錯,將'config.assets.precompile + =%w(application-print.css)'行添加到您的production.rb文件將保留爲單獨的文件。我基於上面Rails指南的第4.1節。 – plasticide