我正在使用 Express 和 NodeJS。在我的 server.js
文件中我有这段代码:
app.use(express.static('/static'));
随后在我的静态目录中,我有一个 CSS 文件夹,然后是一个 style.css
文件。在我的 index.html
中,我像这样链接到工作表:
<link rel="stylesheet" type="text/css" href="/static/css/style.css">
但是,在我的测试环境中,我继续收到此错误:
拒绝应用来自“http://localhost:3500/static/css/style.css”的样式,因为它的 MIME 类型(“text/html”)不是受支持的样式表 MIME 类型,并且启用了严格的 MIME 检查。
我确定我的标签中的路径名是正确的,但我对为什么会收到此错误感到困惑。
我是否需要声明 CSS 文件作为 CSS 而不是 HTML 处理?我不是在说 type="text/CSS"
吗?如果不是,我需要在我的服务器文件中放入什么来解决这个问题?
原文由 isabelringing 发布,翻译遵循 CC BY-SA 4.0 许可协议
发生 MIME 类型错误是因为提供的文件可能是 Express 制作的“404 未找到”页面,因为它找不到 CSS 文件。浏览器需要一个 CSS 文件,得到一个 HTML 文件并说 MIME 类型不适合。
意味着静态文件是从字面上提供的
/static
。在基于 Unix 的操作系统中,这是根目录/
的直接子目录。我不认为你这样做,但你不应该存储文件,更不用说该目录中的可公开访问的文件了。相反,您可能正在寻找的是应用程序目录中的static
目录。这就是你如何告诉 express 使用那个服务器文件的方法:
如果你不能在你的 HTML 中包含一个文件,那么总是双重检查,或者更好的是三重检查,该文件可以首先通过浏览器访问。
此外,文件位于
... href="/..."
,而不是... href="/static/..."