4

我的 gemfile 最近升级了我的 compass-rails gem。我开始收到以下错误(仅在 heroku 上生产 - 在本地工作正常),并且已经坚持了几个小时:

Completed 500 Internal Server Error in 14284ms
2012-09-03T20:53:25+00:00 app[web.1]: 
2012-09-03T20:53:25+00:00 app[web.1]: ActionView::Template::Error (File to import not found or unreadable: compass/css3.
2012-09-03T20:53:25+00:00 app[web.1]: Load path: Sass::Rails::Importer(/app/app/assets/stylesheets/application.css.scss)

我认为部分问题必须在于 /app/app/ 出现在此处的路径中 - 但我不明白为什么。当我将下面的指南针配置更改为“资产/样式表”时,我仍然在跟踪错误中看到 /app/app/。

生产.rb:

  # Don't fallback to assets pipeline if a precompiled asset is missed
  config.assets.compile = false

指南针.rb

# Require any additional compass plugins here.
project_type = :rails
sass_dir = "app/assets/stylesheets"

宝石文件

group :assets do
  gem 'sass-rails'
  gem 'coffee-rails'
  gem 'uglifier', '1.2.4'
  gem 'yui-compressor', '0.9.6'
  gem 'compass-rails'
end

在我的 application.css.scss 文件中:

@import "compass/css3";

到目前为止,我一直在尝试所有我能找到的解决方案,但没有任何运气

有什么突出的吗?

4

2 回答 2

5

是的,将指南针移出 :assets 是可行的,但不是理想的解决方案。

检查从推送到heroku的输出我发现

Preparing app for Rails asset pipeline
Running: rake assets:precompile
rake aborted!

但它在本地编译

RAILS_ENV=production rake assets:precompile

解决方案是在预编译资产时不实例化数据库。在 config/application.rb 中:

config.assets.initialize_on_precompile = false

在 compass-rails 项目中查看此问题:

https://github.com/Compass/compass-rails/issues/19

于 2013-01-02T23:55:57.613 回答
0

我将我的 rails 升级到 3.2+ 并最终将 compass-rails 移出资产组以使其正常工作。我真的不明白为什么它会起作用,但它似乎起到了作用。

于 2012-09-04T03:41:41.763 回答