application.css.scss文件未预编译

时间:2013-01-21 17:39:13

标签: ruby-on-rails ruby sass asset-pipeline

我在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,不建议这样做。

2 个答案:

答案 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。 其他人应该分开。