【问题标题】:The resource was blocked due to MIME type (“text/html”) mismatch (X-Content-Type-Options: > nosniff)由于 MIME 类型 (“text/html”) 不匹配 (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) 而被阻止。”

标签: javascript node.js ejs


【解决方案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">
    

    【讨论】:

      猜你喜欢
      • 2020-11-13
      • 1970-01-01
      • 2020-08-10
      • 2019-11-04
      • 2020-03-07
      • 2022-08-20
      • 2023-03-20
      • 1970-01-01
      • 2018-01-13
      相关资源
      最近更新 更多