這是一口!基本上,我試圖將我所有的Rails 3資產發送到S3 Cloud,並使用CloudFront作爲CDN來提供。我已經瞭解瞭如何將Rails配置爲以生產模式從資產服務器中提取。我遇到的問題是找到一個很好的方法來自動地打包並從rake命令或rails gem將所有內容發送到雲端。我有的另一個問題是我不知道如果使用更少的CSS與更多的寶石是要搞砸了。更多從另一個目錄生成一個CSS文件並將其放置在公共/樣式表中。任何想法或建議都非常感謝!謝謝:)使用S3/CloudFront與Rails 3資產和更少的CSS
回答
如果你推動Heroku,並使用Rails 3.1資產,你都設置。
在Amazon的CloudFront配置中創建您的發行版並將源設置爲您的應用程序URL。
然後在你的production.rb文件中加入:
config.action_controller.asset_host = "xxxxxxxxx.cloudfront.net"
主持人是你的CloudFront的分佈的主機。
然後,當您部署確保您在Cedar堆棧上並且正在編譯資產。這將在文件名中添加一個唯一的MD5。當向CDN發出請求(由production.rb文件中的設置自動處理)時,CDN將提供它的文件版本或首先從原始文件中提取它。這意味着您不必將文件推送到CDN,它們會自動進入。
如果您的文件由於某種原因而沒有唯一的名稱,那麼您需要了解如何使CloudFront中的緩存失效,但除此之外它非常容易。
甜!我不知道CloudFront會這樣做。我的印象是,我不得不編譯資產並將其作爲CI流程的一部分上傳。謝謝! – 2012-02-08 16:35:39
這隻適用於Rails 3.1或更高版本。如果您的版本較低,則可能需要進入CloudFront中的緩存中的數據並使其無效(不確定如何操作,但我認爲您可以)。使用Rails 3.1資產時,它包含文件名中的MD5校驗和,使每個構建都是唯一的。 – 2012-02-09 14:55:59
- 1. 我如何使用css與rails和資產管道
- 2. 使用twitter引導與軌道資產管道和更少
- 3. Rails 3 - 資產管道 - 緩存資產
- 4. Rails資產管道 - CSS未更新
- 5. Rails的:使用livereload與資產管道
- 6. Rails 3引擎和靜態資產
- 7. jquery和rails 3資產管道
- 8. Rails 3&Heroku資產編譯
- 9. 由CSS引用的Flex 3 SWC資產
- 10. Rails 3服務於生產資產
- 11. 缺少css和js資產的gzip版本
- 12. Rails 3和CSS
- 13. 開發/生產模式中的Rails 3和資產管道
- 14. Rails 4資產管道和IE8資產
- 15. 使用半管資產和Rails
- 16. Rails 3個的資產加?體= 1
- 17. Rails資產使用說明
- 18. Rails資產投入使用
- 19. Rails的資產:清理資產[CSS/JS文件]
- 20. Rails 3資產管道 - 開發環境與公共/資產目錄衝突
- 21. 使用NGINX和Unicorn在Rails 3應用程序中使用資產VIA SSL
- 22. 的Rails 3.1資產管道CSS manifest.yml
- 23. 安裝rails-backbone,缺少資產?
- 24. 更好的Rails 3中資產處置的`帽deploy`
- 25. 如何使用Jade/Haml與Rails 3.1資產管道和backbone.js
- 26. 如何配置Rails的資產管道使用Formtastic的CSS
- 27. 資產沒有被Rails資產管道服務3
- 28. Rails 3傳統「資產」路線
- 29. 根據環境選擇rails 3資產
- 30. Rails 3資產管道+ Apache + Phusion乘客
你如何將你的代碼部署到生產中? – 2011-03-01 20:33:40
@Jesse我正在做一個git push heroku master。我的計劃是運行rake任務將所有靜態公共資源上載到雲,然後將我的資產服務器更改爲我的雲端URL。 – 2011-03-02 23:01:45