你在版本控制中添加公共/资产吗?
在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文件/等,只会使版本控制混乱。