Как обслуживать простые статические файлы вместе с HTML в NodeJS? - PullRequest
1 голос
/ 23 марта 2019

Я пытаюсь отправить файл 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 Ответ

2 голосов
/ 23 марта 2019

В 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.

...