#javascript #html #node.js #express #static-files
#javascript #HTML #node.js #экспресс #статические файлы
Вопрос:
Я пытаюсь отправить HTML-файл с его файлами CSS и JS в NodeJS с помощью express.static()
, но это не работает.
Я сделал то же самое, что и в некоторых видео, но я не знаю, в чем проблема. А также, когда я открываю index.html
без сервера, он отображает стили.
Это мой app.js (сервер):
app.use(express.static('public'));
app.get("/", (req, res)=>{
res.sendFile(`${__dirname}/index.html`);
});
HTML:
<head>
<link href="./public/styles.css" rel="stylesheet" type="text/css"/>
<script src="./public/jQuery.js"></script>
<script src="./public/main.js"></script>
</head>
Моя общая папка:
-node_modules
-public
jQuery.js
main.js
styles.css
app.js
index.html
package.json
package-lock.json
Заранее спасибо.
Ответ №1:
В app.use(express.static('public'));
строка 'public'
ссылается на каталог, в котором модуль должен искать статические файлы, а не на URL-путь, который он должен использовать для поиска.
src="/jQuery.js"
будет отображаться в public/jQuery.js
файл.
Чтобы сопоставить URL-адреса, начинающиеся с /public/
, с public
каталогом, вам нужно указать это в качестве первого аргумента для использования:
app.use('/public', express.static('public'));
А затем src="/public/jQuery.js"
отобразится в public/jQuery.js
файле.