express:如何使用 sendFile 将 html 与 css 一起发送?
express: how to send html together with css using sendFile?
var app = require('express')();
app.get('/', function(req, res) {
res.sendFile(__dirname + "/" + "index.html");
});
<link rel="stylesheet" href="style.css">
我使用上面的 node.js 代码发送了一个 html 文件。要格式化 html 文件,我需要发送另一个 css 文件 (style.css).
我的问题是:如何使用 sendFile() 发送这两个文件(index.html 和 style.css)并在客户端将它们集成在一起?
浏览器应自行加载 style.css
,因此您可以将其用作路由:
app.get('/style.css', function(req, res) {
res.sendFile(__dirname + "/" + "style.css");
});
但是,当您添加更多文件时,这会很快变得非常麻烦。 Express 提供了一种内置的方式来提供静态文件:
https://expressjs.com/en/starter/static-files.html
const express = require("express");
const app = express();
app.use(express.static(__dirname));
请记住,如果 index.html
与您的服务器代码位于同一目录中,您也会将服务器代码作为静态文件提供,这是不可取的。
您应该将 index.html
、您的 css、图像、脚本等移动到一个名为 public
的子目录中,然后使用:
app.use(express.static("public"));
如果您这样做,Express 将自动提供 index.html
,您也可以删除您的 app.get("/"
。
var app = require('express')();
app.get('/', function(req, res) {
res.sendFile(__dirname + "/" + "index.html");
});
<link rel="stylesheet" href="style.css">
我使用上面的 node.js 代码发送了一个 html 文件。要格式化 html 文件,我需要发送另一个 css 文件 (style.css).
我的问题是:如何使用 sendFile() 发送这两个文件(index.html 和 style.css)并在客户端将它们集成在一起?
浏览器应自行加载 style.css
,因此您可以将其用作路由:
app.get('/style.css', function(req, res) {
res.sendFile(__dirname + "/" + "style.css");
});
但是,当您添加更多文件时,这会很快变得非常麻烦。 Express 提供了一种内置的方式来提供静态文件:
https://expressjs.com/en/starter/static-files.html
const express = require("express");
const app = express();
app.use(express.static(__dirname));
请记住,如果 index.html
与您的服务器代码位于同一目录中,您也会将服务器代码作为静态文件提供,这是不可取的。
您应该将 index.html
、您的 css、图像、脚本等移动到一个名为 public
的子目录中,然后使用:
app.use(express.static("public"));
如果您这样做,Express 将自动提供 index.html
,您也可以删除您的 app.get("/"
。