我在rails中看过很多关于预编译资产的帖子,但我认为我没有看到与我的具体问题有关的帖子。
我的应用程序抱怨aplication.css.scss没有预编译。
根据我的理解,当我运行时,任何* .scss文件都应该在我的rails应用程序中编译:
rake assets:precompile
我甚至在我的public / assets文件夹中确认我可以看到已编译的application.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 :(得分: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
app / assets / stylesheets`中放置了一些样式并将它们放在那里。
答案 1 :(得分:0)
这是因为你的scss文件有编译时错误。我很确定如果用已知的有效内容替换它的内容,它将被编译。
您可以对其进行评论并检查它是否已编译。
始终使用'application.CSS'作为基本CSS。 其他人应该分开。