.scss中的资产不会像其他应用资产一样使用HTTPS进行编译

时间:2014-07-17 13:39:45

标签: ssl ruby-on-rails-4 sass asset-pipeline sprockets

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编译的?

1 个答案:

答案 0 :(得分:0)

对我来说,问题是由于我的生产环境中./tmp/cache仍然存在一些资产造成的。删除这些内容后,./config/environments/production.rb中的最新配置更改已正确选中。如果失败,我还建议您执行rm -rf public/assetsRAILS_ENV=production rake assets:precompile以确保您看到正确的资产,并且不会缓存任何内容。希望这会有所帮助。

(编辑:另见 - https://github.com/rails/sprockets-rails/issues/124