Как обслуживать простые статические файлы вместе с html в NodeJS?

#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 файле.