回答
我也在尋找答案。我發現官方的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. 如何從公共目錄中添加資產到Laravel 4?
- 4. 是否可以在版本控制下讓共享文件?
- 5. 版本控制S3中的資產/資源並集成在代碼中
- 6. 添加ResourceUrlEncodingFilter的Spring MVC資源版本控制
- 7. 資產版本控制(js和css)和瀏覽器不拉最近的資產
- 8. REST API中的版本控制資源
- 9. 跨項目管理和版本控制公共庫
- 10. 將版本控制庫添加到MonoDevelop
- 11. 添加到TFS版本控制
- 12. 在Windows上版本控制圖形資產的最佳方式是什麼?
- 13. Symfony2:資產版本與資產
- 14. 資產管道需要公共/資產文件嗎?
- 15. ZF2版本控制資產,以避免緩存舊文件
- 16. 如何忽略公共/資產與Pow
- 17. Heroku公共資產被卡住
- 18. Rails以開發模式加載應用程序/資產和公共/資產
- 19. 添加窗格時是否指定了版本?
- 20. 是否有任何泛型版本的Apache公共對象池?
- 21. OO設計 - 您是否內部使用公共財產或私人領域?
- 22. CoreData版本控制 - 我需要多久添加一次版本?
- 23. Rails在開發模式下從公共/資產而不是應用程序/資產加載css文件
- 24. Kubernetes聯合控制平面更新是否添加了集羣?
- 25. 是否可以在IBM-AIX上實現共享庫版本控制?
- 26. TYPO3 7.6 - 添加公共功能到控制器
- 27. 如何將資產版本預先添加到css和js?
- 28. 如何在不使用資產管道的情況下在Rails中製作公共資產?
- 29. 版本控制共享文件夾
- 30. Capistrano:共享文件的版本控制/
你覺得你的問題得到了答案嗎?如果是這樣,請接受,否則評論你錯過了什麼會有幫助。 – Travis