Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.09.2018, 16:11
Новичок на форуме
Отправить личное сообщение для SiriusED Посмотреть профиль Найти все сообщения от SiriusED
 
Регистрация: 27.05.2017
Сообщений: 9

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="/">

Ничего не поменялось
Ответить с цитированием
  #2 (permalink)  
Старый 04.09.2018, 09:05
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

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'));
});
...
Ответить с цитированием
  #3 (permalink)  
Старый 04.09.2018, 10:16
Новичок на форуме
Отправить личное сообщение для SiriusED Посмотреть профиль Найти все сообщения от SiriusED
 
Регистрация: 27.05.2017
Сообщений: 9

destus,
Я пробовал через експресс, index.html возвращает но бандлы вебпаковские не грузятся почему-то, вот такие вот ошибки выдает в консоли:
https://goo.gl/Dk9zUP

Еще пробовал через какой-то модуль `connect-history-api-fallback` сделать, но я так и не понял как через него это сделать

А во обще без интеграции експресса этого ни как не реализовать на Angular 1.6?

Последний раз редактировалось SiriusED, 04.09.2018 в 10:48.
Ответить с цитированием
  #4 (permalink)  
Старый 04.09.2018, 11:27
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
бандлы вебпаковские не грузятся почему-то, вот такие вот ошибки выдает в консоли
Ну так раздавайте статику тем же экспрессом и ошибок не будет.
Цитата:
А во обще без интеграции експресса этого ни как не реализовать на Angular 1.6?
Это можно реализовать любым веб-сервером https://github.com/angular-ui/ui-rou...with-html5mode
Ответить с цитированием
  #5 (permalink)  
Старый 04.09.2018, 23:46
Новичок на форуме
Отправить личное сообщение для SiriusED Посмотреть профиль Найти все сообщения от SiriusED
 
Регистрация: 27.05.2017
Сообщений: 9

Я пробовал для nginx сетапить:
Nginx Rewrites

server {
    server_name my-app;
    
    index index.html;

    root /path/to/app;

    location / {
        try_files $uri $uri/ /index.html;
    }
}


Но все равно получаю 404ю ошибку на всех страницах кроме рута "/"
Ответить с цитированием
  #6 (permalink)  
Старый 11.09.2018, 12:01
Новичок на форуме
Отправить личное сообщение для SiriusED Посмотреть профиль Найти все сообщения от SiriusED
 
Регистрация: 27.05.2017
Сообщений: 9

destus,
Это можно реализовать любым веб-сервером

У меня сервер для UI - nginx, запущен он в docker container, я пробовал вводить try_files $uri $uri/ /index.html;, Но ничего не работает, как это можно хотя бы продебажить как то или что?
Ответить с цитированием
  #7 (permalink)  
Старый 11.09.2018, 17:35
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Я без понятия какие у вас настройки, но что написано в server_name и в root не поддается никакому логическому обьяснению. Я более чем уверен что ваше приложение не лежит ни в какой папке по пути /path/to/app. Есть дока по nginx, на русском, гляньте.
Ответить с цитированием
  #8 (permalink)  
Старый 12.09.2018, 00:47
Новичок на форуме
Отправить личное сообщение для SiriusED Посмотреть профиль Найти все сообщения от SiriusED
 
Регистрация: 27.05.2017
Сообщений: 9

destus,
Ну я когда подключаюсь к docker'у, то там все бандлы моего приложения как раз таки лежат по пути usr/nginx/app/html/, и там и conf.d и index.html лежат тоже, докер контейнер, думаю знаете что такое..

Вот так у меня запускается и работает аппликейшен, вот по тому и рут такой, или рут должен быть не там где приложение лежит а просто / и все?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вернуть коллбек OpenID (NodeJS + Angular) olimpset Angular.js 4 04.08.2018 15:15
Скрыть/показать элементы в зависимости от значения select AnyKeyLeft Элементы интерфейса 12 16.07.2014 16:26