Angular 1.6 + NodeJS + Webpack, Использование html5Mode
У меня есть singlepage application на Angular 1.6.
Frontend - port 8000 Backend - port 3000 Я засетапил html5Mode и все впринципе работает, но когда я обновляю страницу то получаю ошибку 404 - `Cannot GET /endpoint_path`, то есть на сколько я понял если включить html5Mode в ангуляре то браузер просто отсылает напрямую запрос на 8000й порт фронтенда и там конечно же нету никакого ответа, потому что это фронт и там нету серверной части. Как это пофиксить, подскажите? P.S. пробовал добавлять тег в мой index.html: <base href="/"> Ничего не поменялось |
SiriusED,
Обрабатывать на ноде запросы страниц и отсылать index.html, а ангуляровский роутер распарсит урл и отрисует нужный компонент. Как-то так const express = require('express'); const app = express(); ... /* change server routing by angular ui router */ app.use('/', function(req, res) { res.sendFile(path.join(__dirname, 'app_client', "build", 'index.html')); }); ... |
destus,
Я пробовал через експресс, index.html возвращает но бандлы вебпаковские не грузятся почему-то, вот такие вот ошибки выдает в консоли: https://goo.gl/Dk9zUP Еще пробовал через какой-то модуль `connect-history-api-fallback` сделать, но я так и не понял как через него это сделать А во обще без интеграции експресса этого ни как не реализовать на Angular 1.6? |
Цитата:
Цитата:
|
Я пробовал для nginx сетапить:
Nginx Rewrites server { server_name my-app; index index.html; root /path/to/app; location / { try_files $uri $uri/ /index.html; } } Но все равно получаю 404ю ошибку на всех страницах кроме рута "/" |
destus,
Это можно реализовать любым веб-сервером У меня сервер для UI - nginx, запущен он в docker container, я пробовал вводить try_files $uri $uri/ /index.html;, Но ничего не работает, как это можно хотя бы продебажить как то или что? |
Я без понятия какие у вас настройки, но что написано в server_name и в root не поддается никакому логическому обьяснению. Я более чем уверен что ваше приложение не лежит ни в какой папке по пути /path/to/app. Есть дока по nginx, на русском, гляньте.
|
destus,
Ну я когда подключаюсь к docker'у, то там все бандлы моего приложения как раз таки лежат по пути usr/nginx/app/html/, и там и conf.d и index.html лежат тоже, докер контейнер, думаю знаете что такое.. Вот так у меня запускается и работает аппликейшен, вот по тому и рут такой, или рут должен быть не там где приложение лежит а просто / и все? |
Часовой пояс GMT +3, время: 16:41. |