Rails 3.1静态资产 - 必须通过预编译为生产资产?

Kar*_*arl 7 ruby-on-rails-3.1 asset-pipeline

我对生产模式下新Rails 3.1资产管道的理解如下: - >

  1. config.action_controller.asset_host = "https://mybucket.s3.amazonaws.com"
  2. config.assets.compile = false
  3. app/assets 被检查回购
  4. bundle exec rake assets:预编译并与S3同步(所有资产)
  5. public/assets 没有检查回购

综上所述,我认为Rails会查找S3上的所有资产,而我不需要它们存储库中.或者至少我不需要回购中的预编译资产public/assets.

我在heroku上发现了这个,如果没有config.assets.compile = true,它就会在S3上找不到预编译的资产.并且heroku 必须经历所有资产的编译阶段,但随后将服务于S3.跑heroku run rake assets:precompile不蹲.生产过程将重新编译所有内容.

咦?这对我来说毫无意义.

我觉得你不需要用图像填充你的回购,让你的CDN做你的工作.

我觉得这是不正确的.我是对还是错?

Ric*_*lse 2

当你拥有这一套时:

config.assets.compile = false

任何资产请求都不会传递到要服务的链轮。预计这些文件将在某处预编译。

查看Heroku 网站上的资产管道设置指南,因为有一个特殊的设置可以使其正常工作。