由于 MIME 类型 (“text/html”) 不匹配 (X-Content-Type-Options: > nosniff),资源被阻止
Posted
技术标签:
【中文标题】由于 MIME 类型 (“text/html”) 不匹配 (X-Content-Type-Options: > nosniff),资源被阻止【英文标题】:The resource was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: > nosniff) 【发布时间】:2021-01-10 10:11:12 【问题描述】:文件结构
index.js:
app.set("view engine", "ejs");
app.use(express.static("public"));
app.use(
bodyParser.urlencoded(
extended: true,
)
);
聊天.ejs
<body>
<h1><%= (roomName) %></h1>
<div id="video-grid">
</div>
<script src="script.js"></script>
</body>
加载时显示错误
“来自“http://localhost:5000/chat/Aishu%20study/Aneesa/script.js”的资源由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options : nosniff)。”
如果我将所有内容都保存在同一个 html 文件中,它就可以工作。有人可以帮我弄这个吗? 我不确定是什么问题
【问题讨论】:
script.js
真的是一个 javascript 文件吗?还有错误消息怎么会在 url 路径中提到一些 /xyz/
子目录,最有可能发生的是路径不正确,它与其他一些通用端点匹配,返回您未在答案中发布的 html 文件
这是错误消息“来自“localhost:5000/chat/Aishu%20study/Aneesa/script.js”的资源由于 MIME 类型 (“text/html”) 不匹配 (X-Content-Type-Options: nosniff) 而被阻止。”
【参考方案1】:
问题在于应用程序中的路径不正确,如果路径相对于同一文件夹,您会看到在 html 文件中包含 script.js 的方式可能是正确的。确切地说,您可以定义它的方式是
您使用的“script.js”文件与当前页面位于同一文件夹中,它无法按您希望的方式工作,因为您正在从localhost:5000/chat/Aishu%20study/Aneesa/xx
url 访问脚本标签
<script src="script.js">
“script.js”文件位于当前文件夹的scripts文件夹中
<script src="scripts/script.js">
“script.js”文件位于当前网页根目录下的scripts文件夹中
<script src="/scripts/script.js">
“script.js”文件位于当前文件夹的上一级文件夹中
<script src="../script.js">
最后是你应该使用的,“script.js”文件位于当前网络的根目录
<script src="/script.js">
【讨论】:
【参考方案2】:您应该像这样包含您的公共路径:
app.use(express.static(__dirname+ '/public'));
然后像这样实现你的脚本和样式:
<script src="/script.js">
【讨论】:
以上是关于由于 MIME 类型 (“text/html”) 不匹配 (X-Content-Type-Options: > nosniff),资源被阻止的主要内容,如果未能解决你的问题,请参考以下文章
由于 MIME 类型(“text/html”)不匹配(X-Content-Type-Options: nosniff)而被阻止
由于 MIME 类型 (“text/html”) 不匹配 (X-Content-Type-Options: > nosniff),资源被阻止
错误:由于 MIME 类型(“text/html”)不匹配而被阻止(X-Content-Type-Options: nosniff)