Экспресс-приложение не может найти index.html

У меня возникла проблема с моим приложением Express, когда я загружаю его в свой Tessel 2, я могу заставить его работать локально, но как только оно загружается в другую систему, это вызывает проблемы. Это ошибка, которую я получаю:

Error: ENOENT: no such file or directory, stat '/tmp/remote-script/public/index.html'
    at Error (native)

И это моя настройка маршрута Express:

app.use('/static', express.static('public'))

app.get('/', function (req, res) {
  res.sendFile(path.join(__dirname + '/public/index.html'));
})

Я пробовал несколько разных путей к файлам, таких как /../public/index.html и ни один из них, кажется, не работает. Моя структура каталогов имеет index.js в качестве файла основного узла, а затем у меня есть публичный каталог с index.html файл внутри него.

Любая помощь будет принята с благодарностью.

2 ответа

Решение

В результате возникла проблема с Tessel 2, а не с Node, мне нужно было обновить .tesselinclude файл для отправки общедоступного каталога на устройство, например так: public/**

Попробуйте использовать абсолютные пути в express.static

app.use('/static', express.static(path.join(__dirname, 'public')))

затем

res.sendFile(path.join(__dirname, '/public/index.html'));

Также я хотел бы предложить вместо вышеупомянутого вы должны использовать render

res.render('index')
Другие вопросы по тегам