Angular принимает неправильный URL для API после перехода на производство - PullRequest
0 голосов
/ 11 октября 2019

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

Когда я применил команду ng build --prod, она сгенерирует файлы производственного чанка в папке проекта узла public. Я переместил эти файлы на live-сервер (общий хостинг Godaddy), затем сайт работает нормально.

Но если попытаться установить связь с сервером (например, войти в систему, зарегистрироваться) с помощью API, то вместо моего URL-адреса моего домена будет принят мой локальный URL http://localhost:8080.

Этот проект работает нормально на живом сервере, если я возвращаюсь к старому коду.

Мой angular.json файл

"build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            "outputPath": "../server/serverAPI/public",
            "index": "src/index.html",
            "main": "src/main.ts",
            "polyfills": "src/polyfills.ts",
            "tsConfig": "src/tsconfig.app.json",
            "assets": [
              "src/favicon.png",
              "src/assets",
              "src/manifest.json",
              "src/manifest.json"
            ],
            "styles": [
              "src/styles.css",
              "./node_modules/bootstrap/dist/css/bootstrap.min.css",
              "./node_modules/jquery/dist/jquery.min.js",
              "./node_modules/bootstrap/dist/js/bootstrap.min.js"
            ],
            "scripts": ["node_modules/moment/min/moment.min.js"]
          },
          "configurations": {
            "production": {
              "fileReplacements": [
                {
                  "replace": "src/environments/environment.ts",
                  "with": "src/environments/environment.prod.ts"
                }
              ],
              "optimization": true,
              "outputHashing": "all",
              "sourceMap": false,
              "extractCss": true,
              "namedChunks": false,
              "aot": true,
              "extractLicenses": true,
              "vendorChunk": false,
              "buildOptimizer": true,
              "budgets": [
                {
                  "type": "initial",
                  "maximumWarning": "4mb",
                  "maximumError": "5mb"
                }
              ],
              "serviceWorker": true
            }
          }
        },

environment.ts

export const environment = {
  production: false
};

environment.prod.ts

export const environment = {
  production: true,
  baseUrl: 'https://example.com'
};

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Попробуйте ng build --configuration=production, так как это то, что ваш угловой json определил как "производственную конфигурацию".

0 голосов
/ 11 октября 2019

Похоже, вы сохраняете свою конфигурацию в environment и не добавляете fileReplacements в производственную конфигурацию, поэтому проверьте angular.json производственную конфигурацию fileReplacements, она должна быть

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