【问题标题】:Rails.application.assets is Nil on Heroku after upgrade sprockets-rails to 3.0.0在将 sprockets-rails 升级到 3.0.0 后,Rails.application.assets 在 Heroku 上为 Nil
【发布时间】:2015-12-20 11:58:21
【问题描述】:

我在本地控制台中检查此命令Rails.application.assets 它可以工作,但在heroku 控制台中它返回Nil

但是当我回滚以使用 sprockets-rails 2.3.3 并在 heroku 控制台中检查 Rails.application.assets 时,它会返回值。

发生了什么?

【问题讨论】:

    标签: ruby-on-rails heroku


    【解决方案1】:

    这是 sprockets-rails 3 更改的结果。请参阅问题 https://github.com/rails/sprockets-rails/issues/237

    您现在可以通过在 /config/environments/production.rb 中设置 config.assets.compile = true 来解决此问题

    【讨论】:

      【解决方案2】:

      您可能需要更改一些代码以与 sprockets-rails 3 兼容,请阅读https://github.com/rails/sprockets/blob/master/UPGRADING.md

      【讨论】:

        【解决方案3】:

        我通过添加这样的应用程序助手解决了这个问题:

        def image_exists?(path)
            if Rails.env == "development" && Rails.application.assets.find_asset(path)
              return true
            elsif Rails.env == "production" && Rails.application.assets_manifest.assets[path]
              return true
            else
              return false
            end
         end
        

        然后我可以通过查找路径并运行来检查图像是否存在

        image_exists?(path)
        

        在我的应用程序中,通常路径只是图像文件名,除非图像位于图像目录的子文件夹中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-18
          • 1970-01-01
          • 1970-01-01
          • 2022-11-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多