这个是满口的!基本上,我试图将我所有的 Rails 3 Assets 发送到 S3 云,并使用 CloudFront 作为 CDN 来交付所有内容。我已经了解了如何配置 Rails 以在生产模式下从 Assets 服务器中提取数据。我遇到的问题是找到一种好方法来自动打包并将所有内容从 rake 命令或 rails gem 发送到云。我遇到的另一个问题是,我不知道将 Less CSS 与 More gem 一起使用是否会搞砸。 More 从另一个目录生成一个 CSS 文件并将其放在 public/stylesheets 中。非常感谢任何想法或建议!谢谢:)
最佳答案
如果您要推送到 Heroku 并使用 Rails 3.1 Assets ,那么您就已经准备就绪了。
在亚马逊的 CloudFront 配置中创建您的分配并将源设置为您的应用程序 URL。
然后在你的 production.rb 文件中添加:
config.action_controller.asset_host = "xxxxxxxxx.cloudfront.net"
主机是您的 CloudFront 分配的主机。
然后,当您部署时,请确保您在 Cedar 堆栈中并且正在编译 Assets 。这会将唯一的 MD5 添加到文件名中。当向您的 CDN 发出请求时(由您的 production.rb 文件中的设置自动处理),CDN 将提供它的文件版本或首先从源中提取它。这意味着您不必将文件推送到 CDN,它们会自动拉入。
如果您的文件由于某种原因没有唯一名称,那么您将需要了解如何使 CloudFront 中的缓存失效,但除此之外它非常简单。
关于ruby-on-rails - 将 S3/CloudFront 与 Rails 3 Assets 和更少的 CSS 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5158111/