экспресс: как отправить html вместе с css с помощью 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).
Мой вопрос: как я могу отправить оба этих двух файла (index.html и style.css) с помощью sendFile() и интегрировать их вместе на стороне клиента?


person neolicd    schedule 04.08.2016    source источник


Ответы (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("/".

person Explosion Pills    schedule 04.08.2016
comment
здорово! Кстати, загружает ли браузер style.css из-за следующего кода? ‹ссылка rel=таблица стилей href=style.css› - person neolicd; 04.08.2016
comment
Да, возможно, вам стоит изучить некоторые материалы HTML, чтобы сразу перейти к материалам узлов. - person MickeyThreeSheds; 16.06.2018
comment
@Explosion Pills: что, если вы пытаетесь сделать это с помощью почтальона, он просто вернет вам html - person Shashank Gaurav; 02.01.2019
comment
@ShashankGaurav Меня смущает твой вопрос; что вы пытаетесь сделать с почтальоном? - person Explosion Pills; 04.01.2019
comment
я удалил все, добавил все свои файлы в папку, добавил app.use(express.static("folderName"));, и бум заработал в корневом URL-адресе /. Спасибо за это! - person Ylama; 12.04.2019