Node.js:用html渲染获取css文件

Cod*_*del 5 node.js

如何在我的HTML文件中使用Node.js中的HTML呈现包含CSS文件?

这是我做的:

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

然后是我要去localhost时的错误:8333/general.css:

Cannot GET /general.css
Run Code Online (Sandbox Code Playgroud)

我的模块渲染器脚本如下:

app.set('views', __dirname);
app.engine('html', engines.mustache);
app.set('view engine', 'html');
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

rob*_*lep 7

您可以使用Express的静态中间件来提供静态文件,如(客户端)JS和CSS:

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

默认情况下,尝试查找静态文件./public(相对于您配置中间件的脚本):

yourproject/app.js   <-- if configured here
yourproject/public/  <-- it will look here
Run Code Online (Sandbox Code Playgroud)

如果您在HTML /模板中使用它:

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

中间件将找到并且(如果找到)服务./public/css/general.css.

如果您想要一个CSS文件与应用程序脚本位于同一目录中的设置,您可以通过将目录作为第一个参数传递给中间件查找文件的位置:

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