2013-04-18 93 views
5

我正在使用一些CDN js和css文件。如何加載本地文件,如果CDN不工作

我在谷歌搜索瞭如何加載本地數據,如果CDN不工作。

我發現這樣寫的

<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
     <script type="text/javascript"> 
      if (typeof jQuery == 'undefined') { 
       document.write(unescape("%3Cscript src='JS/Plugins/jquery-1.8.2.min.js' type='text/javascript'%3E%3C/script%3E")); 
      } 
     </script> 

是其工作良好的聯繫,但後來我嘗試了另一個CDN網絡,那麼它不能從本地下載。如果CDN不能正常工作,那麼它會在我的頁面中顯示錯誤,並且由於缺少該js文件,頁面無法正常工作。 手段:

<script type="text/javascript" src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script> 
<script type="text/javascript"> 
    if (typeof jQuery == 'undefined') { 
     document.write(unescape("%3Cscript src='Include/JS/JqueryPlugin/jquery.min.js' type='text/javascript'%3E%3C/script%3E")); 
    } 
</script> 
在當上述CDN不工作的地方jquery.min.js沒有下載上述情況

同樣如何做的CSS(在谷歌搜索,沒有找到任何好的解決方案)。

如何知道哪個CDN無法正常工作,並從本地下載各自的文件。

請幫

在此先感謝

+2

這不是CDN的問題。你有兩個不同的本地路徑。 – ahren

+0

我寫了兩個本地路徑,但我想要做的像 例如:如果x cdn不工作,那麼它只會下載x.local而不是其他的。 如果2 cdn js不工作,那麼它將只下載2不全部 如何做到這一點 – user1926138

回答

7

您可以使用下面這個腳本:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script> window.jQuery || document.write('<script src="/scripts/jquery.1.9.1.min.js"><\/script>')</script> 
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script> 
<script> window.jQuery.ui || document.write('<script src="/scripts/jquery-ui.min.js"><\/script>')</script> 

希望有用!

+0

如何使用它的腳本以外的其他jQuery和jQuery UI? –

+0

@ AbhinandanN.M。隨時打開一個問題。但是同樣的邏輯,加載的腳本應該給窗口分配一些東西,或者創建一個可以驗證它是否存在的變量。 – FrEaKmAn

0

這可以通過DNS設置來實現,而無需更改代碼。

基本上,您正試圖在CDN和您的原始服務器之間進行故障轉移。如果CDN失敗,請求將故障轉移到您的原始服務器。一種選擇是使用DNS級別的故障轉移,將其與主CDN CNAME一起備份到您的原始服務器主機名。

而且您還在您的DNS設置中爲CDN和原始服務器添加了healthcheck。一旦CDN的健康檢查失敗,DNS應該故障轉移到您的原始服務器並自動從那裏提供靜態文件。

相關問題