【问题标题】:How to update CDN from rails app如何从 Rails 应用程序更新 CDN
【发布时间】:2015-04-14 21:22:19
【问题描述】:

当我运行命令 rake assets:precomplie for production evn。然后资产在本地更新,但没有更新云端 cdn 文件,如 (http:///assets/pages/!-cc5be2564b7a1c153e5f74c677795613.js)。旧资产正在投放,但没有新的更新资产投放。您能否向我提供任何帮助,我们如何更新 CDN 资产。

【问题讨论】:

  • 您是否在 production.rb 文件中设置了config.action_controller.asset_host
  • 是的,我编译了

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


【解决方案1】:

您是否将 config.action_controller.asset_host 指令设置为您的 CDN 网址?

确保RAILS_ENV 环境变量已正确设置为生产。您还可以将其添加到完整命令之前:RAILS_ENV=production bundle exec rake assets:precompile

【讨论】:

    【解决方案2】:

    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
    

    然后部署我希望这对你有帮助:)

    【讨论】:

    • 不,它不适用于我的情况,我这样做了,但 CDN 没有更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多