Пожалуйста, имейте в виду, что я новичок ie в Express материал и c.
У меня есть проблема, что CSS не загружается для того, что я называю " sub-sites ".
Под под-сайтами я имею в виду адреса с как минимум 2 слешами, например domain.com/site/subsite
.
Я использую приложение Express:
const express = require(`express`);
const app = express();
const port = 80;
app.use(express.static(__dirname + `/public_html`)); // For serving CSS & JS to websites
app.get(`/`, (req, res) => { // Root domain
res.sendFile(__dirname + `/public_html/index.html`)
});
app.get(`/website`, (req, res) => { // Another, example site
res.sendFile(__dirname + `/public_html/website1.html`)
});
app.get(`*`, (req, res) => { // For 404
res.sendFile(__dirname + `/public_html/404.html`, 404)
});
app.listen(port, () => console.log(`App listening on port ${port}!`));
В этом случае CSS & JS работают просто отлично.
Однако, , когда я делаю:
app.get(`/website/subsite`, (req, res) => { // A website with 2 slashes in it
res.sendFile(__dirname + `/public_html/website2.html`)
});
даже при отсутствии кода изменен с обычного, CSS или JS не отправляйте с веб-сайта.
Я должен также упомянуть, что все мои файлы находятся в папке public_html
:
ProjectDirectory:
|> server.js
|> package.json
|> package-lock.json
|> public_html/:
|> index.html
|> website1.html
|> website2.html
|> css/:
|> index.css // Corresponding css file to index.html
|> website1.css
|> website2.css
|> js/:
|> ...
На каждой html
странице есть тег link
: <link rel="stylesheet" href="./css/*correct file*.css">
Это также происходит при вводе / веб-сайта /, а не только /website.
ошибка, которая появляется при загрузке суб-сайтов:
Отказался от применения стиля из 'URL', потому что его тип MIME ('text / html') не является поддерживаемым типом MIME таблицы стилей, и строгая проверка MIME включена. Я серьезно испробовал много решений, но не смог найти правильного.
Если вы не понимаете мою проблему, пожалуйста, объясните, как правильно включить файлы css & js в ExpressJS.
Спасибо за помощь!