【问题标题】:Heroku can't precompile or clean assets uninitialized constant Rake::AltSystemHeroku 无法预编译或清理资产未初始化的常量 Rake::AltSystem
【发布时间】:2013-11-01 01:09:03
【问题描述】:

我无法让我的资产在 heroku 上进行预编译。

我认为问题与更改类型的文件有关(它是符号链接,然后是硬链接,现在只是一个普通文件)。

在部署时进行预编译时,我得到:

rake aborted!
       File to import not found or unreadable: token-input.
       Load path: Sass::Rails::Importer(/tmp/build_3f056915-63fa-4ec6-973d-39b8dd847458/app/assets/stylesheets/active_admin.css.scss)
...

(令牌输入是我怀疑的文件,所以我正在尝试按照this article进行清理

但是当我执行 rake:assets clean 时,我得到了这个错误。

rake aborted!
uninitialized constant Rake::AltSystem
/app/vendor/bundle/ruby/1.9.1/gems/rake-10.0.4/lib/rake/file_utils.rb:68:in `rake_system'
...

我对这个错误感到很困惑 - 我用谷歌搜索了它,几乎没有出现。

【问题讨论】:

    标签: ruby-on-rails heroku ruby-on-rails-3.2 asset-pipeline


    【解决方案1】:

    也许您必须将令牌输入添加到资产路径。

    我会试试这个:

    1. 输入rails console
    2. Rails.application.config.assets.paths
    3. 检查令牌输入是否在这些目录中。
    4. 如果没有,在config/application.rb:

      config.assets.path << Rails.root.join("path","to","token-input-folder")
      

    【讨论】:

    • 该文件位于lib/assets/javascripts/ 中(存在于Rails.application.config.assets.paths 中,其中还有另外两个似乎没有问题的javascript 资产。
    【解决方案2】:

    原来是更多的符号链接。错误消息是指与令牌输入一起使用的 CSS,我忘记了与 javascript 文件一起使用的 CSS。 (发帖时,我以为是javascript文件错误,这就是我困惑的原因)

    我将 CSS 文件从符号链接更改为普通文件,推送到 heroku,一切顺利。

    故事的寓意,不要在你的仓库中使用符号链接。

    【讨论】:

      猜你喜欢
      • 2014-02-20
      • 1970-01-01
      • 2015-08-01
      • 2012-04-17
      • 2014-02-19
      • 1970-01-01
      • 2014-04-20
      • 2012-07-11
      • 2013-04-15
      相关资源
      最近更新 更多