Экспресс-приложение не может найти 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')