回答
我也在寻找答案。我发现官方的Rails指南对此有一些想法:
http://guides.rubyonrails.org/asset_pipeline.html#local-precompilation
这里是相关部门的报价(强调):
有几个原因,您可能想预编译资产在本地。其中包括:
- 您可能没有写入生产文件系统的权限。
- 您可能会部署到多台服务器,并希望避免重复工作。
- 您可能正在进行不包含资产更改的频繁部署。
本地编译允许您将编译的文件提交到源代码管理,并正常部署。
有三个注意事项:
- 你不能运行预编译的资产Capistrano的部署任务。
- 您必须确保开发系统上有任何必需的压缩机或缩小器。
- 您必须更改下面的应用配置设置:
在
config/environments/development.rb
,请将下面一行:config.assets.prefix = "/dev-assets"
的
prefix
变化使得链轮使用不同的网址,在开发模式服务资产,将所有请求传递给Sprockets。生产环境中的前缀仍设置为/assets
。如果没有这种更改,应用程序将为开发中的/assets
提供预编译资产,并且在再次编译资产之前,您不会看到任何本地更改。实际上,这将允许您在本地进行预编译,将这些文件放在工作树中,并在需要时将这些文件提交到源代码管理。开发模式将按预期工作。
因此,将预编译资产置于VCS中似乎是个好主意。
我使用Capistrano进行部署。最后一步是编译资产。没有那样的东西被检入版本控制。
https://github.com/capistrano/capistrano/wiki/Documentation-v2.x
编译资产,.gz文件解/等检查,只会扰乱版本控制。
在我的Amazon EC2微型实例上,需要花费10分钟才能运行'rake assets:precompile'。所以部署至少需要10分钟。在我的开发箱上,不到一分钟。考虑到这一点,你认为版本控制编译资产是否合理? –
在[Railscast第#341集](http://railscasts.com/episodes/341-asset-pipeline-in-production)结尾处,Ryan Bates提到了在本地机器上编译资产然后修改capistrano部署任务以将文件rsync同步到生产服务器;即不把它们放在版本控制中。听起来不错。 –
提醒一下:编译资产后,您的开发环境可能会选择直接提供这些资源,而不是根据需要生成它们。对我来说,一个快速解决方案是在完成上述cap资产:预编译和rsync任务后删除'/ public/assets'。 –
- 1. Elixir版本控制公共路径
- 2. 是否可以在版本控制下让共享文件?
- 3. 版本控制S3中的资产/资源并集成在代码中
- 4. 添加ResourceUrlEncodingFilter的Spring MVC资源版本控制
- 5. 资产版本控制(js和css)和浏览器不拉最近的资产
- 6. 添加到TFS版本控制
- 7. 跨项目管理和版本控制公共库
- 8. 在Windows上版本控制图形资产的最佳方式是什么?
- 9. 添加窗格时是否指定了版本?
- 10. 是否有任何泛型版本的Apache公共对象池?
- 11. CoreData版本控制 - 我需要多久添加一次版本?
- 12. OO设计 - 您是否内部使用公共财产或私人领域?
- 13. 如何将资产版本预先添加到css和js?
- 14. TYPO3 7.6 - 添加公共功能到控制器
- 15. 如何在不使用资产管道的情况下在Rails中制作公共资产?
- 16. Kubernetes联合控制平面更新是否添加了集群?
- 17. 是否可以在IBM-AIX上实现共享库版本控制?
- 18. 版本控制共享文件夹
- 19. Capistrano:共享文件的版本控制/
- 20. 你的配置文件是否保留在版本控制中?
- 21. package-lock.json是否需要在git中进行版本控制?
- 22. 加密版本控制
- 23. Umbraco:使用版本控制?试/生产?
- 24. 版本控制的生产环境
- 25. 是否有允许您永久删除文件的版本控制系统?
- 26. 您是否可以更改.net自动版本控制的基准日期?
- 27. 更新Laravel中的公共/资产与资源/资产文件夹,使用Bower/Gulp管理资产
- 28. 在Rails模型中获取公共资产的URL
- 29. 在公共版本控制服务器上存储keystores keyPassword和keyStorePassword
- 30. 您在哪个控制器中为关系的子部分添加了CRUD?
你觉得你的问题得到了答案吗?如果是这样,请接受,否则评论你错过了什么会有帮助。 – Travis