Не подключаются файлы
Только начал изучать node.js и столкнулся с проблемой: не отображаются стили. Сами стили подключены к html-документу, но при запуске сервера они не отображаются, также происходит и с другими файлами, которые подключаются к html-документу, например, javascript, но такого не происходит с картинками.
Вот просто пример:
html-документ
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet" href="css/style.css"> // Подключаю стили
</head>
<body>
<h1>some text</h1>
</body>
</html>
css-файл
h1 {
color: red;
}
index.js
const http = require('http');
const path = require('path');
const fs = require('fs');
const server = http.createServer((req, res) => {
fs.readFile(path.join(__dirname, 'public', 'index.html'), (err, data) => {
if (err) {
throw err;
}
res.writeHead(200, {
'Content-Type': 'text/html'
});
res.end(data);
});
});
const PORT = process.env.PORT || 3000;
server.listen(3000, () => {
console.log(`Server has been started on localhost:${PORT}...`)
});
И структура сайта
Перейдя на localhost:3000 вижу обычный черный заголовок. Как можно решить эту проблему? Как вообще принято решать подобного рода проблемы?
UPD
Я проверил sources в панели разработчика. Там есть css-файл, но его содержание эквивалентно html-документу. Теперь я вообще ничего не понимаю.

Ответы (2 шт):
Каждое обращение к сайту вы отдаёте вашу html страничку. Вы неправильно поняли принцип работы http сервера.
Вам так или иначе придётся делать маршрутизацию - самописную или через фреймфорки. Можете почитать например про "общепринятый" express и его маршрутизацию. Без фреймфорка это скорее всего займёт слишком много времени и будет велосипед с багами и уязвимостями. И фреймворк довольно прост в понимании. Также можете в ютубе посмотреть обучения по ноде и экспресс, там это всё объясняется за час, на мой взгляд это лучше чем методом тыка тратить время.
