20

我在 Rails 3.1 rc1 中尝试使用sass时收到这些警告。

WARN: tilt autoloading 'sass' in a non thread-safe way; explicit require 'sass' suggested.
WARN: tilt autoloading 'sass/plugin' in a non thread-safe way; explicit require 'sass/plugin' suggested.

这是我的 Gemfile。

gem "rails", "~> 3.1.0.rc1"
gem "haml"
gem "sass"

我试图在包含此代码sass.rb的内部创建一个名为的文件。config/initializers

require "sass"

将 Gemfile 更改为此。

gem "rails", "~> 3.1.0.rc1"
gem "haml"
gem "sass", require: false

但警告仍然存在。任何人都知道如何解决它?

我找到了打印警告的代码,如果这有帮助的话。

4

3 回答 3

13

你试过在 Gemfile 中这样做吗?

gem "sass", :require => 'sass'

这是一个显式调用,不使用初始化程序。顺便说一下,您使用的是 rc1 版本。

于 2011-05-31T17:09:50.763 回答
3

我遇到了同样的问题,并且能够通过在推送到 Heroku 之前在本地编译资产来解决它,如文章Rails 3.1+ Asset Pipeline on Heroku Cedar中所述

RAILS_ENV=production bundle exec rake assets:precompile

我还尝试了 Itecedors 的建议,该建议也有效:

While precompiling assets, in Rails 3.1.1 and up, you can prevent initializing
your application and connecting to the database by ensuring that the following 
line is in your > config/application.rb:

config.assets.initialize_on_precompile = false
于 2012-10-12T13:02:45.353 回答
1

在 Heroku 上,我遇到了同样的错误,谷歌搜索并没有帮助我找到问题,所以我想我会将我发现的内容添加到这个问题中,因为它在搜索时首先出现。

问题不是这个错误,而是将代码推送到 Heroku 时出现的一个较小的错误。列出宝石后,这些行让我走上了答案之路:

Running: rake assets:precompile
rake aborted!
Tasks: TOP => environment
(See full trace by running task with --trace)
Precompiling assets failed, enabling runtime asset compilation
Injecting rails31_enable_runtime_asset_compilation
Please see this article for troubleshooting help:
http://devcenter.heroku.com/articles/rails31_heroku_cedar#troubleshooting

我刚刚在 Heroku 上配置 Redis,所以我知道问题一定与这些更改有关。在那个网址我发现了这个:

在预编译资产时,在 Rails 3.1.1 及更高版本中,您可以通过确保以下行位于 > config/application.rb 中来防止初始化应用程序并连接到数据库:

config.assets.initialize_on_precompile = false

添加 on_precompile = false 行修复了所有错误,包括此问题中的原始错误。

于 2012-04-18T18:00:41.310 回答