Express.static和CSS文件的MIME类型错误

isa*_*ing 4 html javascript css static express

我正在使用express和node。在我的server.js文件中,我有这段代码:

app.use(express.static('/static'));
Run Code Online (Sandbox Code Playgroud)

然后在我的静态目录中,我有一个CSS文件夹,然后是一个style.css文件。在我的中index.html,我像这样链接到工作表:

  <link rel="stylesheet" type="text/css" href="/static/css/style.css">
Run Code Online (Sandbox Code Playgroud)

但是,在我的本地主机中,我继续收到此错误:

拒绝从' http:// localhost:3500 / static / css / style.css ' 应用样式,因为它的MIME类型('text / html')不是受支持的样式表MIME类型,并且启用了严格的MIME检查。

我确定标记中的路径名正确,并且我对为什么收到此错误感到困惑。我需要声明将CSS文件处理为CSS而不是HTML吗?我说的时候不这样做type="text/CSS"吗?如果没有,我需要在服务器文件中放入什么来解决此问题?

Luc*_*bel 5

app.use(express.static('/static'));
Run Code Online (Sandbox Code Playgroud)

表示静态文件实际上是从提供的/static。在基于Unix的操作系统中,这是目录root的直接子级/。我认为您不这样做,但您不应该存储文件,更不用说该目录中的公共可访问文件了。相反,您可能正在寻找的是static您应用程序目录中的目录。

您可以通过以下方法告诉Express将其用于服务器文件:

app.use(express.static(__dirname + "/static"));
Run Code Online (Sandbox Code Playgroud)

发生MIME类型错误,因为送达的文件很可能是Express制作的“ 404 Not Found”页面,因为找不到文件。

如果您无法在HTML中包含文件,请始终进行两次检查,甚至最好进行三重检查,以确保可以首先通过浏览器访问该文件。

此外,文件然后位于/ ...,而不是/ static /...。

  • 并且如果您希望文件位于url / static / ..而非url中,则使用app.use(“ / static”,express.static(__ dirname +“ / static”));代替。 (2认同)