2011-08-06 94 views
7

我正在試驗Rails 3.1,它使用Sprokets 2.0作爲其「資產管道」,並嘗試在生產環境中使用CDN託管的庫,但本地託管文件爲發展。在Rails 3.1中使用CDN託管的JS庫進行生產

即,在發展: jquery.js被加載的application.js

的一部分,但在生產中: http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js代替加載。

獎金問題:爲什麼我不應該這樣做?

+0

我在做同樣的在我的項目:) –

+0

+1這樣做是正確的。我實際上在六個月前創建了一個項目,通過在目標文件中放置一個'use_remote'調用來支持這個項目。這允許自動依賴解決方案,同時利用CDN託管的腳本。你可以檢查項目的一些想法 - javascripto.org。自從引入資產管道以來,我已經停止了這個項目的工作,但認爲這是相關的。希望資產管道能夠支持這樣的事情。我也想看到像我的包的概念。 –

+1

您是如何讓Rails 3.1在開發中使用本地捆綁的jQuery以及在生產環境中託管CDN的?我在3.0中這樣做,但我不知道如何在資產管道啓用時執行此操作。 – Roman

回答

1

沒有理由不這樣做。 Google的CDN的重點在於,當許多不同的網站使用同一個CDN文件時,瀏覽器或其他地方可能會緩存這些文件。整個流程的重點是做同樣的事情 - 壓縮包+遠程頭文件。

不使用CDN的唯一原因是CDN距離很遠,您訪問者使用的網站也很少使用CDN。

在我的情況下,我在新西蘭,很少有任何本地網站使用CDN。這對訪問我們網站的人員(在瀏覽另一個本地網站時沒有人獲得該文件)增加了第一次要求的懲罰。我選擇將jquery捲入產品包中以避免請求和加載所花費的時間(距離新西蘭大約700mS)。

YMMV!

相關問題