Rails:Bootstrap 生产中未加载字形
Rails: Bootstrap glyphicons not loading in production
升级到 Rails 5 后,Bootstrap 字形图标无法在 heroku 上正确加载。例如,垃圾桶图标显示为问号。浏览器似乎没有找到字形资产并加载它自己的解释。我正在使用 bootstrap-sass 3.3.7
。
加载字形后,如果我打开控制台,我会看到如下错误:
A server with the specified hostname could not be found
https://assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2
在我看来,没有为 bootstrap 资产正确设置资产主机。
在我的 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"
。但是对于 bootstrap 资产来说,域名解析为 https://
.
这是怎么回事?
进一步调查表明,这不是 Rails 5 本身的问题,而是由于在升级中更改了 production.rb
文件,并遵循 Heroku's advice 对 ENV 变量的使用这样的文件。
因此,我需要在预编译中指定目标 RAILS_HOST_PATH 即
RAILS_ENV=production RAILS_HOST_PATH=www.example.com rake assets:precompile
升级到 Rails 5 后,Bootstrap 字形图标无法在 heroku 上正确加载。例如,垃圾桶图标显示为问号。浏览器似乎没有找到字形资产并加载它自己的解释。我正在使用 bootstrap-sass 3.3.7
。
加载字形后,如果我打开控制台,我会看到如下错误:
A server with the specified hostname could not be found
https://assets/bootstrap/glyphicons-halflings-regular-fe185d11a49676890d47bb783312a0cda5a44c4039214094e7957b4c040ef11c.woff2
在我看来,没有为 bootstrap 资产正确设置资产主机。
在我的 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"
。但是对于 bootstrap 资产来说,域名解析为 https://
.
这是怎么回事?
进一步调查表明,这不是 Rails 5 本身的问题,而是由于在升级中更改了 production.rb
文件,并遵循 Heroku's advice 对 ENV 变量的使用这样的文件。
因此,我需要在预编译中指定目标 RAILS_HOST_PATH 即
RAILS_ENV=production RAILS_HOST_PATH=www.example.com rake assets:precompile