Rails:Bootstrap glyphicons未在生产中加载

时间:2016-12-23 06:47:18

标签: ruby-on-rails twitter-bootstrap bootstrap-sass

升级到Rails 5后,Bootstrap glyphicon图标无法在heroku上正确加载。例如,Trashcan图标显示为问号。看来浏览器没有找到glyphicon资产并加载自己的解释。我正在使用bootstrap-sass 3.3.7

当加载glyphicons时,如果我打开控制台,我会看到如下错误:

A server with the specified hostname could not be found
https://assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2

在我看来,资产主机没有为引导资产正确设置。 在我的production.rb文件中,我有一行

config.asset_host = "https://#{ENV['RAILS_HOST_PATH']}"

如果我heroku config --remote production,则RAILS_HOST_PATH的值为www.example.com

如果我查看Rails.application.config.asset_host,它会正确显示 "https://www.example.com"。但是,对于引导资产,域名将被解析为https://

这里发生了什么?

1 个答案:

答案 0 :(得分:1)

进一步的调查显示Rails 5本身不是问题,但是由于在升级时更改了production.rb文件,并且在Heroku's advice之后使用ENV变量来处理这些文件。

因此,我需要在预编译中指定目标RAILS_HOST_PATH,即 RAILS_ENV=production RAILS_HOST_PATH=www.example.com rake assets:precompile