Мое дерево:
├── app.js
├── data
│ └── stuff.json
├── package.json
├── public
│ ├── index.html
│ ├── main.js
├── routes
└── api.js
Ниже приведены две строки, которые я использовал в своем файле app.js для обслуживания статического файла public / index.html.
Этот первый вариант работает нормально. Насколько я понимаю, он направляет пользователя в публичный каталог относительно app.js:
app.use(express.static('public'))
Следующая вторая строка не работает. Насколько я понимаю, это абсолютный путь к публичному каталогу.
app.use(express.static(path.join(__dirname, 'public')))
https://expressjs.com/en/starter/static-files.html, кажется, предлагает первый вариант, но большинство веб-сайтов и книг поощряют второй. Почему / когда поощряется второй? И почему в этом случае у меня не работает?
Спасибо за комментарий. (path.join (_dirname + '/ public')) выводит из системы абсолютный путь, тогда как другой случай дает относительный путь. Абсолютный путь здесь не кажется мне бесполезным, но он часто используется - интересно, в каком сценарии он может оказаться полезным?





express.staticпросто делегируетpath.resolve(). Так что я бы выбралconsole.infoпуть, который вы выбрали для обоих случаев.