如何为Refile gem设置CDN CloudFront?

时间:2016-01-13 03:26:59

标签: ruby-on-rails heroku cdn amazon-cloudfront

我的应用程序运行正常,可以使用Refile并将图像上传到S3。我已经读到你应该在应用程序前放置一个CDN,以提高它的效率和安全性。

我可以阅读任何地方进行正确设置吗?我看了github回购并尝试按照说明操作,但我觉得我做错了。

这就是我所做的:

  1. 创建AWS CloudFront分配,其中原始域名指向我的S3实例(bucket_name.s3.amazonaws.com)。

  2. 使用Route 53创建一个CNAME以添加自定义域名" cdn.mydomain.com"指向CloudFront域名" xxx.cloudfront.net"。

  3. 转到我的/config/initializers/refile.rb并添加以下行: Refile.cdn_host =" https://cdn.myappname.com"。

  4. 提交并推送到Heroku

  5. 我的所有图片链接现已破损。

  6. 我做错了什么?

1 个答案:

答案 0 :(得分:1)

我这样做的方法是将Cloudfront放在整个网站的前面而不是存储桶本身。

  1. 创建AWS CloudFront分配,将原点设置为我的域(www.example.com)
  2. 创建指向xxx.cloudfront.net
  3. 的CNAME(cloud.example.com)
  4. 转到config / environments / production.rb并添加第config.action_controller.asset_host = 'http://cloud.example.com'
  5. 转到config / initializers / refile.rb并添加行Refile.cdn_host = 'http://cloud.example.com'