Ваш код работает как есть, когда каталог public
находится внутри Текущий рабочий каталог (т. Е. Каталог, в котором вы находитесь, когда запускаете npm start
или node src/index.js
).
Если вы хотите убедиться, что каталог находится там, где вы запускаете скрипт, используйте путь относительно вашего скрипта, используя собственный path
модуль .
Например, если структура вашей папки выглядит следующим образом:
my-project/
|_ public/
| |_ index.html
|_ src/
| |_ index.js
|_ package.json
вам нужно go подняться на один уровень (..
):
const Path = require('path'); // <------- add this native module
const express = require("express");
const app = express();
app.listen(3000, () => console.log("listening at 3000"));
const publicPath = Path.join(__dirname, '../public'); // <-- get path
app.use(express.static(publicPath));
Если каталог находится в той же папке, что и ваш Сценарий, вы можете просто сделать
Path.join(__dirname, 'public');