这里的错误: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对我来说一直如此 –