2016-02-18 55 views
0

我正在使用AWS和Cloudfront來服務我的資產。事情是,我的CSS和JS文件存儲在本地。圖像和視頻位於AWS Bucket上。使用AWS處理Rails資產的最佳方式

我即將開始這一切,因爲我對軌道很陌生,所以想知道處理這個問題的最佳方法是什麼。

我環顧四周,發現了幾個選項: - 創建具體的行爲,這樣我可以使用本地CSS和JS和AWS存儲的圖像 - 上傳在AWS上的一切,然後使用的Cloudfront(我個人最喜歡的,好像最好的選擇給我) - 其他選項?

如果有人使用AWS爲RoR服務資產,您有何看法?你是否使用任何特定的寶石來做到這一點?

回答

0

如果您將Cloudfront發行版的起源設置爲生產軌應用程序的url,那麼Cloudfront將在瀏覽器請求時從其中取出尚未緩存的所有文件。

在您的Rails應用程序中,您應該將資產主機設置爲您的Cloudfront發行版的網址。以下是一個示例:

# config/environments/production.rb 
config.action_controller.asset_host = "<YOUR DISTRIBUTION SUBDOMAIN>.cloudfront.net" 

這將告訴導軌鏈接到資產,但通過Cloudfront URL進行導入。這意味着對於您擁有的每項資產,cloudfront只會在每個版本中請求一次。每當您發佈更新時,新資產的網址將會不同,這會導致Cloudfront抓取它,因爲它尚未被緩存。

使用此方法可防止您在每次部署時必須將文件同步到s3。

相關問題