這裏的錯誤:Rails的資產不是在生產中編譯
Processing by LandingPageController#index as HTML
Rendered landing_page/index.html.erb within layouts/application (2.1ms)
Completed 500 Internal Server Error in 49ms
ActionView::Template::Error (landing_page.css isn't precompiled):
12: <![endif]-->
13:
14: <%= stylesheet_link_tag "application", :media => "all" %>
15: <%= stylesheet_link_tag params[:controller] %>
16:
17: </head>
18: <body>
app/views/layouts/application.html.erb:15:in `_app_views_layouts_application_html_erb__3002306950342527375_29178380'
我可以看到它尋找landing_page.css文件,因爲線15的什麼我不明白是什麼是什麼是最好的將此資產預編譯用於生產的方式。我曾嘗試修改/config/application.rb:
config.assets.precompile += ['landing_page.css']
這似乎對我不合適。我必須爲每個樣式表做這件事,這會讓人討厭。
我添加代碼到application.css清單:
*= require landing_page
這似乎並沒有工作。當我這樣做,並且不修改應用程序配置文件時,我得到第一個錯誤。
我難倒你如何能在您的佈局的行
<%= stylesheet_link_tag params[:controller] %>
,並有預編譯的生產資產,當你運行
bundle exec rake assets:precompile
我覺得我錯過一些簡單的技巧,當您運行rake任務時,會自動將自動生成的樣式表和JavaScript文件添加到要編譯的文件列表中。
這很有道理。謝謝! – mujtaba
我認爲Frederick的迴應意味着任何'自定義'清單文件(使用js_include_tag params [:controller])都必須包含在config.assets.precompile中。這是Rails 4中的新功能嗎?那麼現在只有application.css,application.js是由Rails自動編譯的? –
Rails 3.2對我來說一直如此 –