你在版本控制中添加公共/资产吗?

在rails 3.1中,当您预编译资产时,rails会创建public / assets目录并在那里添加文件。

你是版本控制公共/资产/ *吗?

我也在寻找答案。 我发现官方的Rails指南对此有一些想法:

http://guides.rubyonrails.org/asset_pipeline.html#local-precompilation

以下是相关部分的引用(重点补充):

您可能希望在本地预编译资产有几个原因。 其中包括:

  • 您可能没有对生产文件系统的写入权限。
  • 您可能正在部署到多个服务器,并希望避免重复工作。
  • 您可能正在进行不包含资产更改的频繁部署。

本地编译允许您将已编译的文件提交到源代码控制中,并正常部署。

有三个警告:

  • 您不得运行预编译资产的Capistrano部署任务。
  • 您必须确保开发系统上有任何必要的压缩机或缩放器。
  • 您必须更改以下应用程序配置设置:

config/environments/development.rb ,放置以下行:

 config.assets.prefix = "/dev-assets" 

prefix更改使Sprockets在开发模式下使用不同的URL来提供资产,并将所有请求传递给Sprockets。 前缀仍设置为生产环境中的/assets 。 如果没有此更改,应用程序将从开发中的/assets中提供预编译资产,在再次编译资产之前,您不会看到任何本地更改。

实际上,这将允许您在本地进行预编译,在工作树中包含这些文件,并在需要时将这些文件提交到源代码控制。 开发模式将按预期工作。

因此,有时候将预编译资产放入VCS可能是个好主意。

我使用Capistrano进行部署。 最后一步是编译资产。 没有这样的东西被检入版本控制。

https://github.com/capistrano/capistrano/wiki/Documentation-v2.x

检查已编译的资产,.gz文件/等,只会使版本控制混乱。