轨道4,Heroku的不承认预编译manifest-(指纹)以.json(Rails 4, Hero

2019-09-28 02:27发布

升级到Rails 4后,不再生成公钥/资产/ manifest.yml。 代替不同格式manifest-(指纹)上传.json存在。 但在我看来,该服务器仍在寻找老manifest.yml格式,忽略了以.json版本?

我看到基于类似问题的其他问题,但他们似乎sovled通过升级到Rails 4,加入rails_12factor到创业板文件,并设置serve_static_assets = TRUE,等等,但是这些解决方案都似乎在我的方案有任何影响。

我累了,平庸由于这个恼人的问题,任何帮助将不胜感激!

日志文件从Heroku的:

ActionController::RoutingError (No route matches [GET] "/assets/layouts/test/test.html"):

的Gemfile:

ruby '2.0.0'
gem 'rails', '4.0.0'
...
gem "compass-rails", github: "milgner/compass-rails", ref: "1749c06f15dc4b058427e7969810457213647fb8"
...
gem 'rails_12factor', group: :production

production.rb

RailsFoundationAngular::Application.configure do
  config.assets.initialize_on_precompile = false
  config.cache_classes = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_assets = true
  config.assets.compress = true  
  config.assets.compile = false
  config.assets.digest = true
  config.i18n.fallbacks = true
  config.active_support.deprecation = :notify
  config.action_dispatch.x_sendfile_header = nil
end

我使用的角度和他们的用户界面的路由器,这是其中的test.html链接我routes.js.coffee的一部分:

    .state "root",
      url: "/"
      views:
        "root":
          controller: "ApplicationController"
          templateUrl: "/assets/layouts/test/test.html"

我也曾尝试在本地预编译的,但因为我使用Rails 4在这里为好,还是没有创建manifest.yml,只有以.json版本。 当然,一切都工作得很好的发展...

所以我的实际cuestion:如何使Heroku的识别和使用manifest-(指纹)以.json -file,或替代办法,使这项工作?

Answer 1:

答案是,是的Heroku已经不识别和使用manifest-(指纹)以.json -file。 “解决办法”在我的评论以上,是引用这些文件的正确方法,并通过这样做,清单文件使用它彪的使用方式。

重命名与内部链接到.erb的文件,参照这样的: templateUrl: "<%= asset_path('layouts/test/test.html') %>"的伎俩。 所有的内部文件,图像和HTML -files应该像这样被引用。

这一切都说明得很彻底这里: 资产管道指南

现在看来如此简单明了,但我真的花了很多时间试图从一开始就避开这个错误的方式。 我希望这个答案可以节省别人的时间。



文章来源: Rails 4, Heroku doesn't recognize precompiled manifest-(fingerprint).json