2013-01-21 71 views
0

我已經看到很多關於rails中預編譯資源的文章,但我不認爲我看到與我的特定問題有關的文章。application.css.scss文件沒有預編譯

我的申請抱怨aplication.css.scss沒有預編譯。

據我瞭解,任何* .scss文件應該在我的Rails應用程序被編譯當我運行:

rake assets:precompile

我甚至在我的公開/資產的文件夾確認,我可以看到編譯的應用程序.css文件。

然而,當我試圖訪問我的應用程序的第一頁,我收到以下錯誤:

Compiled application.css (1002ms) (pid 20298) 
Started GET "/" for 10.20.1.162 at 2013-01-21 12:21:38 -0500 
Processing by MyController#new as HTML 
    Rendered business_searches/partials/_form.html.erb (16.6ms) 
    Rendered business_searches/new.html.erb within layouts/application (45.6ms) 
    Rendered commons/_documenthead.html.erb (34.0ms) 
Completed 500 Internal Server Error in 139ms 

ActionView::Template::Error (application.css.scss isn't precompiled): 
    4: <meta charset="utf-8" /> 
    5: <title>My Company Name | <%= @page_title || 'My Company Tagline' %></title> 
    6: 
    7: <%= stylesheet_link_tag "application.css.scss", :media => "all" %> 
    8: <%= javascript_include_tag "application" %> 
    9: 
    10: 
    app/views/commons/_documenthead.html.erb:7:in `_app_views_commons__documenthead_html_erb___1078677729313377561_30352020' 
    app/views/layouts/application.html.erb:1:in `_app_views_layouts_application_html_erb___646383708034639720_28260100' 

我是能夠解決由我config/environments/production.rb文件中設置以下變量的問題:

config.assets.compile = true

但根據本post,不推薦。

+0

什麼是'application.html.erb'第7行,'<%= stylesheet_link_tag「application.css.scss」,:media =>「all」%>'? – dimuch

回答

1

我建議你保持清單文件application.css只是爲了管理css資產,而不是以.scss作爲前綴。對於application.html.erb文件正確的語法是:

<%= stylesheet_link_tag "application", :media => "all" %> 

如果您放置一些款式在你的「application.css , just create a new css.scss file in your應用程序/資產/ stylesheets`並將其放置在那裏。

+0

謝謝!更改爲在application.html.erb中使用正確的語法取得了訣竅! –

+0

如果它對你有幫助,我很高興。祝你好運。 –

0

這是因爲你的scss文件有編譯時錯誤。我很確定,如果你用已知有效的內容替換它的內容,它將被編譯。

你可以評論它,並檢查它是否編譯。

始終使用'application.CSS'作爲基礎CSS。其他應該分開。