У меня есть приложение Express Node, которое работает нормально локально, но когда я развертываю файлы Heroku под /public
и /bower_components
, не найдено.Ресурсы приложения Heroku Node не загружаются
This post казалось, аналогичная проблема, но решение не работает для меня.
Вот соответствующая часть моего app.js:
app.use(express.static(path.join(__dirname, 'public')));
app.use('/bower_components', express.static(__dirname + '/bower_components'));
Вот мой package.json файл:
{
"name": "MyApp",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www",
"postinstall": "bower install"
},
"dependencies": {
"express": "~4.9.0",
"body-parser": "~1.8.1",
"cookie-parser": "~1.3.3",
"consolidate": "~0.10.0",
"morgan": "~1.3.0",
"serve-favicon": "~2.1.3",
"debug": "~2.0.0",
"bower": "^1.3.12",
"dustjs-helpers": "~1.4.0",
"dustjs-linkedin": "~2.5.0",
"node-compass": "0.2.3"
},
"engines": {
"npm": "2.7.1"
}
}
В консоли браузера я могу убедиться, что все файлы присутствуют
Это заставляет меня верить, есть это подать иск с Героку, правильно прочитав __dirname.
Я не знаю, что это может быть, но я хотел бы проверить 2 вещи: во-первых, являются относительные пути к файлам, построенным правильно (они похожи на локальные пути /app/directory/stuff.js)? во-вторых, убедитесь, что файлы на самом деле нажаты на heroku: клонируйте репозиторий в новом месте и проверьте целостность. У меня была проблема, когда часть приложения не загружалась в герою, хотя она не была gitignored. – Vee6
Для вашего первого предложения: Мои пути выглядят как /directory/stuff.js, но __dirname добавляется к статическим файлам, я не сталкивался с этой проблемой при развертывании в Heroku раньше. Второе предложение: в консоли браузера я вижу все файлы в разделе «Источники». Я уточню свой вопрос. –