轨道4,Heroku不';无法识别预编译清单-(指纹).json
升级到Rails 4后,不再生成public/assets/manifest.yml。而是存在不同格式的manifest-(fingerprint).json。 但在我看来,服务器仍然在寻找旧的manifest.yml格式,而忽略了.json版本 我看到了基于类似问题的其他问题,但它们似乎可以通过升级到Rails 4、将Rails\u 12factor添加到gem文件、设置SERVICE\u static\u ASTESS=true等方式得到解决,但这些解决方案在我的场景中似乎都没有任何效果 由于这个烦人的问题,我感到疲惫和缺乏灵感,任何帮助都将不胜感激 来自Heroku的日志文件:轨道4,Heroku不';无法识别预编译清单-(指纹).json,heroku,manifest,ruby-on-rails-4,precompiled,Heroku,Manifest,Ruby On Rails 4,Precompiled,升级到Rails 4后,不再生成public/assets/manifest.yml。而是存在不同格式的manifest-(fingerprint).json。 但在我看来,服务器仍然在寻找旧的manifest.yml格式,而忽略了.json版本 我看到了基于类似问题的其他问题,但它们似乎可以通过升级到Rails 4、将Rails\u 12factor添加到gem文件、设置SERVICE\u static\u ASTESS=true等方式得到解决,但这些解决方案在我的场景中似乎都没有任何效果 由
ActionController::RoutingError (No route matches [GET] "/assets/layouts/test/test.html"):
档案:
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
我正在使用Angular及其ui路由器,这是我的routes.js.coffee中test.html链接的部分:
.state "root",
url: "/"
views:
"root":
controller: "ApplicationController"
templateUrl: "/assets/layouts/test/test.html"
我也尝试过本地预编译,但由于我在这里也使用Rails 4,仍然没有创建manifest.yml,只有.json版本。
当然,在开发过程中,一切都很完美
所以我的实际提示是:
我如何让Heroku识别并使用manifest-(fingerprint).json-file,或者其他方法来实现这一点?答案是,Heroku已经识别并使用manifest-(fingerprint).json-file了。我上面评论中的“变通方法”是引用这些文件的正确方法,通过这样做,清单文件的使用方式与它的使用方式相同 使用内部链接将文件重命名为.erb,并像这样引用:
templateUrl:“
就可以做到这一点。所有内部文件、图像和html文件都应该这样引用
这里对所有这些都进行了非常详细的描述:
现在看起来很简单和直接,但我真的花了很多时间试图从一开始就搞错这个问题。
我希望这个答案能为其他人节省时间。现在我在这里找到了一个可用的解决方法:。将routes.js.coffe重命名为routes.js.coffe.erb,并将链接文件命名为
templateUrl:“
”。现在我只需要像这样更改源中的每个文件引用。事实上,我认为这正是清单文件希望为我做的事情?你能澄清一下这个答案吗?修复之前,您的资产路径是什么样子的?我也有同样的问题,我的问题是: