Heroku Rails的问题4 Amazon Cloudfront CDN和SSL

时间:2013-11-07 23:09:14

标签: ruby-on-rails heroku ruby-on-rails-4 asset-pipeline amazon-cloudfront

我在Heroku上使用Rails 4,force_ssl = true,将asset_host配置为Cloudfront CDN,配置为使用Heroku rails服务器作为源,并将“match protocol”设置为true。我在使用自签名证书的登台实例上进行了类似的设置。由于自签名,在登台实例上,force_ssl为false,并且CDN配置为强制HTTP(而不是HTTPS)。

问题是生产服务器部署无法刷新缩小的application.js的CDN版本。 SHA会随着每次部署而变化, AND 我已经验证了:

  • CDN的版本 NOT 与将主机URL替换为Heroku服务器的版本相同。 CDN服务于旧版本的JS。

因此:

  1. 部署顺利运行,推动变革。
  2. rake assets:预部署在部署期间运行,创建一个新命名的application-new-sha.js文件。
  3. 这个新的js文件在部署后提供的HTML页面中引用,带有CDN URL。
  4. 来自CDN的JS版本来自较旧的部署。
  5. 替换rails服务器主机的JS版本获得了正确的JS。
  6. 登台服务器没有此问题,唯一的区别是资产的来源是HTTP而不是HTTPS。
  7. 这绝对令人抓狂。

    我正在考虑回到使用S3和asset_sync gem来希望避免这个问题。

    有关排除故障的建议吗?或解决这个问题?

0 个答案:

没有答案