3

这个是满口的!基本上,我正在尝试将我的所有 Rails 3 资产发送到 S3 Cloud,并使用 CloudFront 作为 CDN 来交付所有资产。我已经了解了如何将 Rails 配置为在生产模式下从资产服务器中提取。我遇到的问题是找到一种从 rake 命令或 rails gem 自动打包并将所有内容发送到云的好方法。我遇到的另一个问题是,我不知道将 Less CSS 与 More gem 一起使用是否会搞砸。More 从另一个目录生成一个 CSS 文件并将其放在 public/stylesheets 中。非常感谢任何想法或建议!谢谢 :)

4

1 回答 1

3

如果您正在推送到 Heroku 并使用 Rails 3.1 资产,那么一切就绪。

在亚马逊上的 CloudFront 配置中,创建您的分配并将源设置为您的应用程序 URL。

然后在您的 production.rb 文件中添加:

config.action_controller.asset_host = "xxxxxxxxx.cloudfront.net"

主机是您的 CloudFront 分配的主机。

然后,当您部署时,请确保您在 Cedar 堆栈上并且正在编译资产。这会将唯一的 MD5 添加到文件名中。当向您的 CDN 发出请求(由您的 production.rb 文件中的设置自动处理)时,CDN 将提供它的文件版本或首先从源中提取它。这意味着您不必将文件推送到 CDN,它们会自动拉入。

如果您有一个由于某种原因没有唯一名称的文件,那么您将需要查看如何使 CloudFront 中的缓存无效,但除此之外它非常简单。

于 2012-01-05T22:50:06.510 回答