当我运行命令rake assets:precomplie for production evn。然后资产在本地更新,但没有在cloudfront cdn文件上更新,如(http:// / assets / pages / !-cc5be2564b7a1c153e5f74c677795613.js)。旧资产正在服务但不是新的更新资产。能告诉我们如何更新cdn资产吗?
答案 0 :(得分:0)
您是否已将config.action_controller.asset_host
指令设置为您的CDN网址?
确保RAILS_ENV
环境变量已正确设置为生产。您还可以将其添加到完整命令:RAILS_ENV=production bundle exec rake assets:precompile
。
答案 1 :(得分:0)
在config/environments/production.rb
中,您会看到一个设置asset_host
,负责将域名添加到通过内置资产助手创建的所有资产链接
# config/environments/production.rb
config.action_controller.asset_host = "<YOUR DISTRIBUTION SUBDOMAIN>.cloudfront.net"
部署后,此应用程序现在将通过CloudFront分发服务所有资产。
有关详情:https://devcenter.heroku.com/articles/using-amazon-cloudfront-cdn
还有一件事:
如果您想在生产模式下预编译资产,请检入 production.rb :
config.serve_static_assets = true
config.assets.digest = true
config.assets.compile = true # make it false if you don't want to let heroku precompile everytime
然后在终端中运行以下内容:
RAILS_ENV=production bundle exec rake assets:precompile
然后部署我希望这可以帮助你:)