2015-12-29 62 views
0

下面的代碼,是否必須提及協議來加載jQuery?

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"> 
</script> 
<script type="text/javascript"> 
    console.log(jQuery); 
</script> 

src後在Firefox瀏覽器中正常工作被修改爲"http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"(遠程文件)或"../js/jquery.min.js"(本地文件)

否則,開發者控制檯給人Reference error: jQuery is not defined

我想用遠程庫測試代碼但不是本地的

我如何理解這個問題?

+4

控制檯中的任何錯誤?你的網站是運行在一臺機器上還是使用'file'協議('file:///')或'https'模式? –

+0

哪一個是FF版? –

回答

1

正如Mosh Feu所述,如果您在本地運行文件,而無需Web服務器,則無法使用協議相對路徑來加載jQuery。這是因爲它試圖找到本地參考:file://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js

嗯,你可以,如果你的文件夾/some/where/jQuery.js中有jQuery的地方和你<script src="//some/where/jQuery.js>

所以引用它,是的,如果你從磁盤直接運行頁面,您必須如果你想要的jQuery指定協議來自CDN。查看第一條評論http://www.paulirish.com/2010/the-protocol-relative-url/

爲自己省去一些麻煩,請安裝本地網絡服務器。

2

離開URL的方案意味着它是計劃的相對。

如果HTML文檔通過HTTP加載,那麼JS也會如此。

如果HTML文檔通過HTTPS加載,那麼JS也會如此。

如果HTML文檔通過FILE加載,那麼... JS將不會因爲file://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js不存在。

在本地Web服務器上進行本地測試時,請勿直接從您的文件系統加載HTML。

0

如果協議未明確指定,您必須在本地查看文件,而不使用導致錯誤URL的Web服務器。

相關問題