ruby-on-rails - Heroku + Rails4.2 : Cloudfront setup

标签 ruby-on-rails amazon-web-services heroku cdn amazon-cloudfront

我正在尝试为我的 heroku 应用程序设置 Cloudfront。 The documentation似乎缺乏独立站立的能力。

以下是我遵循的步骤:

 1. Setup Cloudfront in AWS console
 2. Added cloudfront domain name to production.rb `config.action_controller.asset_host = 'XXXX.cloudfront.net'`
 3. Set `config.assets.compile = true` in production.rb
 4. Verified AWS_SECRET_ACCESS_KEY is correct in heroku config
 5. I have added `gem 'rails_12factor', group: :production`

不再加载任何 Assets 。我在设置中缺少任何步骤吗?

更新1:

在 chrome 调试器中,从以下 url 从 cloudfront 正确请求 Assets :http://XXXXX.cloudfront.net/assets/application-22c7c249df1a24541d86603b0715eefe.css

但是在请求 header 中看到 Status Code:302 Moved Temporarily .我想知道我是否有重定向循环以及如何调试它。

更新2

谢谢大家的建议。更多信息:
  • 当我尝试从我的应用程序下载 Assets 时,我会重定向到浏览器上的主页,但使用 curl 我能够获取 Assets 。例如: curl 'http://www.myapp.com/assets/application-c9a778bb55ad4152d956fd34fe6f7839.css'
  • 该应用程序不使用 SSL。但是,我仍然根据@Omar 的建议将 Origin Protocol Policy 设置为 Match Viewer
  • 我尝试从浏览器上的应用程序下载 Assets ,并且能够访问 Assets 。例如:'http://www.myapp.com/assets/application-c9a778bb55ad4152d956fd34fe6f7839.css'
    但是,尝试直接在云端访问 Assets (d1ax5oefcdtdki.cloudfront.net/assets/application-c9a778bb55ad4152d956fd34fe6f7839.css) 会将其重定向到 myapp.com
  • Cloudfront DS 的屏幕截图:

  • https://www.dropbox.com/s/bkg480d4it6zl2r/Screenshot%202015-12-06%2014.01.28.png?dl=0

    http://glui.me/?i=7ah73hffrhvmpt7/2015-12-06_at_2.02_PM.png/

    https://www.dropbox.com/s/dd4wwgm3md8w7qn/Screenshot%202015-12-06%2014.05.20.png?dl=0

    最佳答案

    对于其他在调试 cloudfront 时遇到问题的人。

    问题是 Cloudfront 缓存了重定向(可能是设置错误)。在使缓存失效后,我能够强制 CF 从我的应用程序中获取 Assets 并提供服务。

    enter image description here

    关于ruby-on-rails - Heroku + Rails4.2 : Cloudfront setup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34032670/

    相关文章:

    django - 使用 'heroku local' 找不到本地启动 Django 应用程序的 .env 文件

    php - Heroku,我正在尝试将Google2fa添加到我的Heroku Web服务器中,但它的响应是419页已过期

    ruby-on-rails - Web 应用程序中的 API 版本控制

    django - 领头启动时出现 ImportError : No module named my_project. wsgi 错误

    ruby-on-rails - Rails 6 和 Controller #render 更改

    node.js - NodeJS - 上传到 s3 而不保存在本地文件系统中

    json - 在 AWS::CloudFormation::Init 下指定多个 "sources"的 JSON 格式是什么?

    amazon-web-services - AWS Lambda : Is it secure to store data on AWS Lambda local Disk?

    ruby-on-rails - RSpec - 未定义的方法 `key?'

    ruby-on-rails - 我可以编辑使用 'gem install'或从我的gemfile安装的gem吗?