如何从rails app更新CDN

时间:2015-04-14 12:42:52

标签: ruby ruby-on-rails-4 amazon-web-services amazon-cloudfront

当我运行命令rake assets:precomplie for production evn。然后资产在本地更新,但没有在cloudfront cdn文件上更新,如(http:// / assets / pages / !-cc5be2564b7a1c153e5f74c677795613.js)。旧资产正在服务但不是新的更新资产。能告诉我们如何更新cdn资产吗?

2 个答案:

答案 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

然后部署我希望这可以帮助你:)