2

我在 Heroku 的 Cedar 堆栈上运行了一个新的 Ruby on Rails 应用程序。该应用程序在本地运行良好。但是,当我尝试登录我的网站时,出现错误:

Error compiling CSS asset

Sprockets::FileNotFound: couldn't find the file 'reset.scss'
  (in app/app/assets/stylesheets/application.css:4)

我的文件 application.css 如下所示:

/**
 *= require_self
 *= require reset.scss
 *= require_tree .
*/

然后,在目录资产/样式表中,我有文件

application.css
reset.scss
dialog.scss
etc

这个想法是我希望 application.css 将所有 css 资产编译在一起,reset.scss 文件出现在顶部。

这是 Heroku 中的错误吗?为什么它可以在本地完美运行,但不能在 Heroku 上运行?

4

2 回答 2

0

尝试以下操作

  • 确保application.css包含在您的布局文件中。如果没有,则添加以下 css 链接标签。

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

  • 重命名reset.scssreset.css(如果它是纯 css)或reset.css.scss(如果它包含 scss 标记)

  • 在您的application.css中,您可以只要求 by *= require reset。根据 rails 约定,资产的文件扩展名被跳过。

  • 摆脱require_tree并明确要求每个文件

最后,如果它仍然不起作用。作为一种解决方法,您可以在您的/config/environment/production.rb.js 中启用资产的运行时编译。它应该只在第一次命中资产时变慢,因此被编译。初始编译后的请求应该是正常速度。

于 2012-06-12T07:29:15.263 回答
0

另一种选择是使用“ rake assets:precompile ”对资产进行本地编译,然后将它们添加到项目存储库中。

于 2012-06-12T09:05:52.883 回答