express: как отправить html вместе с css с помощью sendFile?

var app = require('express')();

app.get('/', function(req, res) {
  res.sendFile(__dirname + "/" + "index.html");
});
<link rel="stylesheet" href="style.css">

я использовал вышеуказанный узел.JS код для отправки файла HTML. Чтобы отформатировать html-файл, мне нужно отправить другой файл css (стиль.стиль CSS.)
Мой вопрос: как я могу отправить оба этих файла(индекс.HTML и стиль.css) с помощью sendFile () и интегрировать их вместе на стороне клиента?

1 ответов


браузер должен загрузить 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("/" как хорошо.