【问题标题】:'sass' in a non thread-safe way'sass' 以非线程安全的方式
【发布时间】:2011-08-30 19:35:19
【问题描述】:

我在 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"

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

require "sass"

将 Gemfile 更改为此。

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

但警告仍然存在。 谁知道怎么解决?

我发现 the code 正在打印警告,如果有帮助的话。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 sass ruby-on-rails-3.1


    【解决方案1】:

    你试过在 Gemfile 中这样做吗?

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

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

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题,并且能够通过在推送到 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
      

      【讨论】:

        【解决方案3】:

        在 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 行修复了所有错误,包括此问题中的原始错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-06-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-03-30
          • 2014-10-16
          相关资源
          最近更新 更多