2016-11-21 307 views
27

我正在使用JavaScript和HTML開發一個網頁,一切正常 很好,當我從我的HTML頁面收到這個錯誤列表時:由於MIME類型不匹配導致資源被阻塞(X-Content-Type-Options:nosniff)

The resource from 「https://raw.githubusercontent.com/dataarts/dat.gui/master/build/dat.gui.min.js」 
    was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff). 
The resource from 「https://raw.githubusercontent.com/mrdoob/three.js/dev/build/three.js」 was 
    blocked due to MIME type mismatch (X-Content-Type-Options: nosniff). 
The resource from 「https://raw.githubusercontent.com/mrdoob/three.js/master/examples/js/renderers/CanvasRenderer.js」 
    was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff). 
The resource from 「https://raw.githubusercontent.com/mrdoob/three.js/master/examples/js/renderers/Projector.js」 
    was blocked due to MIME type mismatch (X-Content-Type-Options: nosniff). 
The resource from 「https://raw.githubusercontent.com/mrdoob/three.js/dev/build/three.js」 was 
    blocked due to MIME type mismatch (X-Content-Type-Options: nosniff). 

這些錯誤的自動更新的瀏覽器(Mozilla Firefox瀏覽器)之後出現,可以 的東西已經在建立改變。你知道任何方式來解決這個 問題嗎?

+5

不要從GitHub加載文件。相反,使用CDN。 – SLaks

回答

12

這可以通過固定改變你的網址,例如糟糕:

https://raw.githubusercontent.com/svnpenn/bm/master/yt-dl/yt-dl.js 
Content-Type: text/plain; charset=utf-8 

實例好:

https://cdn.rawgit.com/svnpenn/bm/master/yt-dl/yt-dl.js 
content-type: application/javascript;charset=utf-8 

rawgit.com是github上緩存代理服務。您也可以前往該網址並交互推導出原始網址raw.githubusercontent.com的相應網址。看到它的FAQ

+12

我不明白是什麼讓你的好例子很好。 – Pup

+1

在addess'raw.githubusercontent。com'由'cdn.rawgit.com'替換,它將以正確的MIME類型進行響應。 –

26

檢查文件路徑是正確的,該文件存在 - 在我的情況,這是問題 - 因爲我固定它,錯誤消失

+0

我也面臨同樣的問題,文件也不在pub目錄中。我該怎麼辦?它是一個自定義主題文件。 –

+0

@SaiidatRLTSquare如果文件不存在,你應該從某個地方找到並放在那裏 - 或者如果該文件不重要 - 只需刪除包含它的行(或創建空文件),以便它不會給出錯誤 – dav

2

這可能是因爲瀏覽器無法訪問文件。使用node.js創建應用程序時,我偶然發現了這種類型的錯誤。您可以嘗試直接請求腳本文件(複製和粘貼url)並查看是否可以檢索它。你可以看到真正的問題是什麼。這可能是因爲文件所在的文件夾的權限,或者由於路徑不正確,瀏覽器無法找到它。在node.js中,指定了到文件的路徑後,所有工作。

+0

根據[此MS頁](https://msdn.microsoft.com/en-us/library/gg622941(v = vs.85).aspx)它似乎是一個MIME類型的問題。 **但是,如何在Node.js中指定'MIME'類型?**(不應該指定所有文件的完整路徑,而只是指定assets目錄,不是?) – not2qubit

2

在我的情況下改變從UTF-8 JS-文件的字符集不BOM簡單的UTF-8解決了這個問題,我只是錯過get_template_directory_uri後的斜槓「/」(),所以結果/產生的路徑是錯誤的:

我的錯誤代碼:

wp_enqueue_script('retina-js', get_template_directory_uri().'js/retina.min.js'); 

我更正代碼:

wp_enqueue_script('retina-js', get_template_directory_uri().'/js/retina.min.js'); 
4

檢查你的路徑,如果文件不存在到給定路徑中,則會出現此錯誤。

1

您使用快遞嗎?

檢查您的路徑(注意 「/」 後/公/):

app.use(express.static(__dirname + "/public/")); 

//注意:您不需要 「/」 前 「CSS」,因爲它上面已經包含:

rel="stylesheet" href="css/style.css 

希望這會有所幫助

相關問題