由于 Heroku 上的 MIME 类型不匹配,脚本被阻止

Posted

技术标签:

【中文标题】由于 Heroku 上的 MIME 类型不匹配,脚本被阻止【英文标题】:Script blocked due to MIME type mismatch on Heroku 【发布时间】:2017-11-16 02:39:52 【问题描述】:

这种类型的错误我第一次看到无法得到,什么是相同的实际问题。

bootstrap-multiselect.css 中的资源”由于 MIME 类型不匹配(X-Content-Type-Options: nosniff)而被阻止。

应用程序在本地机器上完美运行,但是当部署到heroku服务器时,应用程序和插件也无法正常工作。

有人可以帮我吗???

【问题讨论】:

【参考方案1】:

如果服务器发送响应标头“X-Content-Type-Options: nosniff”,脚本和 styleSheet 元素将拒绝 MIME 类型不正确的响应。这是一项安全功能,有助于防止基于 MIME 类型混淆的攻击。

当服务器在其响应中发送“X-Content-Type-Options: nosniff”标头时,此更改会影响浏览器的行为。

如果在样式表引用收到的响应中收到“nosniff”指令,它不会加载“样式表”文件,除非 MIME 类型匹配 “text/css”

如果在脚本引用检索到的响应中收到“nosniff”指令,除非 MIME 类型与以下值之一匹配,否则它将不会加载“脚本”文件:

“应用程序/ecmascript”

“应用程序/javascript

“应用程序/x-javascript”

“文本/ecmascript”

“文本/javascript”

“文本/jscript”

“文本/x-javascript”

“文本/vbs”

“文本/vbscript”

【讨论】:

原因很明显,但没有解决办法。

以上是关于由于 Heroku 上的 MIME 类型不匹配,脚本被阻止的主要内容,如果未能解决你的问题,请参考以下文章

本地文件(无服务器)上的 Internet Explorer“由于 mime 类型不匹配而忽略 CSS”

由于 MIME 类型不匹配,无法加载 JavaScript 文件

由于 mime 类型不匹配,IE9 脚本响应被阻止

由于 MIME 类型不匹配,功能被阻止(X-Content-Type-Options: nosniff)

由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff)而被阻止

由于 MIME 类型 (“text/html”) 不匹配 (X-Content-Type-Options: > nosniff),资源被阻止