My Rails 4应用程序存在使用HTTP而不是HTTPS预编译某些资产的问题。所有CSS和JS都使用HTTPS编译路径,视图中的图像也使用HTTPS。这个问题是在css.scss文件中,我有:
background: image-url('bg.jpg') no-repeat;
编译时,它使用HTTP而不像其他资产那样使用HTTPS。
我已将config设置为在生产中使用SSL:
config.action_controller.asset_host = "https://www.example.com"
config.force_ssl = true
并在生产环境中预编译资产,但不能正常工作。我尝试使用asset_url
代替image-url
,但这也不起作用。
我正在使用Rails(4.0.8),Sass-rails(4.0.2),Sprockets(2.11.0)和Sprockets-rails(2.0.1)。
为什么css.scss的资产不是用HTTPS编译的?
答案 0 :(得分:0)
对我来说,问题是由于我的生产环境中./tmp/cache
仍然存在一些资产造成的。删除这些内容后,./config/environments/production.rb
中的最新配置更改已正确选中。如果失败,我还建议您执行rm -rf public/assets
和RAILS_ENV=production rake assets:precompile
以确保您看到正确的资产,并且不会缓存任何内容。希望这会有所帮助。
(编辑:另见 - https://github.com/rails/sprockets-rails/issues/124)