2016-11-21 525 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 

希望这会有所帮助

相关问题