0

我看过很多关于 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

但根据这篇文章,不建议这样做。

4

2 回答 2

1

我建议您保留清单文件application.css仅用于管理 css 资产,而不是在其前面加上.scss. 文件的正确语法application.html.erb是:

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

如果您在 'application.css , just create a newcss.scss file in yourapp/assets/stylesheets` 中放置了一些样式并将它们放在那里。

于 2013-01-21T17:56:51.227 回答
0

这是因为您的 scss 文件存在编译时错误。我很确定如果你用已知的有效内容替换它的内容,它将被编译。

你可以评论它并检查它是否编译。

始终使用“application.CSS”作为基础 CSS。其他的应该分开。

于 2013-01-21T18:12:09.607 回答