由于 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 类型不匹配,功能被阻止(X-Content-Type-Options: nosniff)
由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff)而被阻止
由于 MIME 类型 (“text/html”) 不匹配 (X-Content-Type-Options: > nosniff),资源被阻止