У меня есть приложение angular2 в heroku, и у меня проблемы с маршрутизатором. В локальном хосте все работает как шарм, но когда я развертываю герою и пытаюсь получить доступ по любому маршруту, который не является индексом, я получил ошибку 404, если я иду по индексу, а затем перейдите на страницу прохода, маршрутизация происходит нормально, если я не перезагружу страницу, то я получаю еще 404, вот кусок моего пакета.json, используемый heroku "heroku-prebuild": "npm install http-server -g", "heroku-postbuild": "ng build --target=production --environment=prod && rsync -a dist/* .", "start": "http-server dist/",
Нужно ли мне настроить какую-либо экспресс-переписку, которая будет использоваться в моем Procfile?Angular2 routing in heroku
4
A
ответ
0
Кажется, проблема с сервером, угловая знает маршрутизацию, но ваш сервер не знает всех этих путей. Простым решением является перенаправление всех путей на ваш основной index.html. Подобно этому,
app.get('*', function (req, res) {
res.sendfile('./dist/index.html'); // load our index.html file
});
Это не будет давать какие-либо ошибки 404, то все ваши пути будут перенаправлены на основной путь index.html и то есть угловой маршрутизации будет работать так же, как это было в локальном хосте.
+0
У меня все еще есть проблема. Я применил это уже. И это только обновленная страница на странице, которая не является root, которая показывает внутреннюю ошибку – MurWade
Просто предложение - поиск маршрутизации HTML5 в https://m.alphasights.com/using-nginx-on-heroku-to-serve-single-page-apps-and-avoid-cors-5d013b171a45#.1yk8sb720 –
Вы также можете добавить '{предоставить: LocationStrategy, useClass: HashLocationStrategy}' поставщикам вашего 'AppModule'. См. Также http://stackoverflow.com/questions/36861628/location-and-hashlocationstrategy-stopped-working-in-beta-16 –
@ GünterZöchbauer Без 'HashLocationStrategy' единственный способ добиться этого - использовать NGINX? –