在 Node JS 中获取 CSS 的问题

Problems getting CSS in Node JS

我正在尝试使用把手将我的 CSS 文件加载到我的 Node JS 应用程序中,但出现错误

Refused to apply style from 'http://localhost:8080/styles/main.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled. 

我检查了路径和它的权利。有什么解决办法吗?

在我的 index.js 我有 app.use(express.static('public'))

我的车把 html 我有 <link rel='stylesheet' type="text/css" href='/styles/main.css'>

我的工作区是

-node_modules

-public
--styles
---main.css

-template-engine
--views
---layout
----main.handlebars

这很可能是您调用 app.use(express.static('public')) 的方式造成的。一般来说,最好使用下面的格式。

const path = require("path");
app.use(express.static(path.join(__dirname, "public")));

很遗憾,很难从您提供的信息中猜出问题的确切原因。您可以加载其他外部资源,例如脚本或图像吗?还是您只在 CSS 文件中遇到过这种情况?这可能是因为 express 找不到文件或者您可能需要更改文件权限。此外,这个问题在 Whosebug 和其他网站上至少被问了数百次。你检查过另一个questions了吗?我敢肯定,如果这不能解决您的问题,其中的答案之一将会解决。

最后,我建议你使用express-handlebars而不是handlebars.js。它可能更适合您的需求。并且不要忘记检查 express-handlebars 中的默认文件结构。