Express.js 静态可以很好地提供 css 文件,但不能提供 javascript 文件

问题描述 投票:0回答:1

我正在制作一个非常简单的 Node 应用程序。我正在使用 CoffeeScript 和 Pug。

我用这段代码来设置静态文件:

app.use express.static('public')

这是我的文件树:

这工作正常:

link(rel="stylesheet" href="/css/index.css")

如您所见

但这不是:

script(src='/js/watch.js')

如您所见

我做错了什么?

javascript html node.js express
1个回答
-2
投票

您遇到的错误消息表明

localhost:3000
提供的资源的 MIME 类型与浏览器期望的 MIME 类型不匹配。
X-Content-Type-Options: nosniff
标头指示浏览器不要猜测 MIME 类型,而是使用提供的 MIME 类型。但是,如果资源的实际 MIME 类型与浏览器期望的不匹配,则可能会阻止资源加载。

您可以采取以下几个步骤来解决此问题:

  1. 检查 MIME 类型:验证

    localhost:3000
    处的服务器是否正确指定了所提供资源的 MIME 类型。它应该与发送的实际内容匹配。如果服务器未正确配置以发送正确的 MIME 类型,您需要调整其配置。

  2. 确保正确的 Content-Type 标头:确保服务器随响应一起发送正确的

    Content-Type
    标头。例如,如果所提供的资源是 HTML 文件,则服务器应在响应标头中包含
    Content-Type: text/html

  3. 检查服务器配置:仔细检查

    localhost:3000
    运行的服务器的配置。确保将其设置为为其提供的不同类型的内容提供正确的 MIME 类型。

  4. 浏览器缓存:清除浏览器缓存并尝试再次访问资源。有时,浏览器可能会缓存不正确的 MIME 类型,导致即使在服务器端更正后问题仍然存在。

  5. 浏览器扩展:某些浏览器扩展或插件可能会干扰 MIME 类型检测过程。尝试禁用任何可能导致问题的扩展,看看是否可以解决问题。

通过执行以下步骤,您应该能够解决 MIME 类型不匹配问题并从

localhost:3000
加载资源,而不会遇到错误。

© www.soinside.com 2019 - 2024. All rights reserved.