2015-03-17 3 views
1

У меня есть приложение Express Node, которое работает нормально локально, но когда я развертываю файлы Heroku под /public и /bower_components, не найдено.Ресурсы приложения Heroku Node не загружаются

enter image description here

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" 
    } 
} 

В консоли браузера я могу убедиться, что все файлы присутствуют

enter image description here

Это заставляет меня верить, есть это подать иск с Героку, правильно прочитав __dirname.

+0

Я не знаю, что это может быть, но я хотел бы проверить 2 вещи: во-первых, являются относительные пути к файлам, построенным правильно (они похожи на локальные пути /app/directory/stuff.js)? во-вторых, убедитесь, что файлы на самом деле нажаты на heroku: клонируйте репозиторий в новом месте и проверьте целостность. У меня была проблема, когда часть приложения не загружалась в герою, хотя она не была gitignored. – Vee6

+0

Для вашего первого предложения: Мои пути выглядят как /directory/stuff.js, но __dirname добавляется к статическим файлам, я не сталкивался с этой проблемой при развертывании в Heroku раньше. Второе предложение: в консоли браузера я вижу все файлы в разделе «Источники». Я уточню свой вопрос. –

ответ

0

Этот вопрос был решен этой почтой. Node.js with express app crashes on Heroku, works locally

мне пришлось перенести следующие строки выше других линий конфигурации приложения в моих app.js

app.use(express.static(path.join(__dirname, 'public'))); 
app.use('/bower_components', express.static(__dirname + '/bower_components')); 
Смежные вопросы