由于 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)

注册时的 ServiceWorker MIME 类型错误('text/html')(React)

“socket.io.js”由于 MIME 类型而被阻止

拒绝执行脚本,因为 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查