Угловой 6 api url с портом не вызывается правильно.Api-порт исчезает из-за режима углового расширения - PullRequest
0 голосов
/ 12 марта 2019

У меня есть api url, установленный как глобальная переменная в моем угловом приложении:

API_URL: 'http://52.109.53.23:3001'

И все мои запросы API проходят через этот URL, и он прекрасно работает в режиме разработки (ng s), но когда я скомпилирую его для производства (ng build --prod) и разверную на моем веб-сервере ubunut nginx, запрос завершится неудачно , они не правы, номер порта Api пропущен : это вывод консоли:

Object { headers: {…}, status: 404, statusText: "Not Found", url: "http://52.109.53.23/auth/sign_in"

Итак, если вы заметили, что порт исчез, как я могу решить эту проблему? спасибо заранее

Ответы [ 2 ]

1 голос
/ 12 марта 2019

Согласно официальной документации.

ng build --prod

В мета-флаг - prod включены следующие функции оптимизации сборки.

  • Компиляция с опережением времени (AOT): предварительнокомпилирует шаблоны угловых компонентов.
  • Режим производства: развертывает производственную среду, которая включает режим производства .
  • Объединение: объединяет множество файлов приложений и библиотек в несколько пакетов.
  • Минификация: удаляет лишние пробелы, комментарии и дополнительные токены.Uglification: переписывает код для использования коротких, загадочных имен переменных и функций
  • Устранение мертвого кода: удаляет несвязанные модули и много неиспользуемого кода.

Конфигурация окружения задается в angular-cliфайл конфигурации (angular-cli.json или angular.json в v6), который по умолчанию имеет две опции: dev и prod

"environments": {
  "dev": "environments/environment.ts",
  "prod": "environments/environment.prod.ts"
}

Для v6 + среды angular.json настраиваются в разделах конфигурации.

"configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],

Если вы используете один и тот же URL для обеих сред, вы должны определить его в обоих файлах

src / environment / environment.ts

export const environment = {
  production: false,
  API_URL: 'http://52.109.53.23:3001'
};

src / environment / environment.prod.ts

export const environment = {
  production: true,
  API_URL: 'http://52.109.53.23:3001'
};

Чтобы использовать переменные окружения, все что вам нужно сделать, это импортировать объект окружения следующим образом:

import {environment} from '../../environments/environment';

....

apiUrl = environment.API_URL;

....
0 голосов
/ 12 марта 2019

В вашем проекте у вас должна быть папка «environment» с двумя стандартными файлами: environment и environment-prod.ts.в оба из них вы добавляете все, что вам нужно

export const environment = {
   server : 'http://<ip>:<port>'
}

, позже вы ссылаетесь на

import { environment } from '<wherever it is>';

, а затем ссылаетесь на environment.server

при выполненииprod build environment-prod будет использоваться в пользу среды

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...