Angular Serverless развертывание на AWS добавляет base-href к URL, вызывая перенаправление на 404error - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь развернуть англоязычный веб-сайт на aws без сервера.Будучи новичком в этом, я последовал этому уроку: https://coursetro.com/posts/code/165/Deploying-your-Angular-App-to-a-Serverless-Environment-

После развертывания мой URL добавляется с дополнительным ' production / ', который, как я предполагаю, связан с моим базовымhref setup.

Это приводит к ненужному перенаправлению на 404. Кто-нибудь знает, как этого избежать? Навигация по меню работает идеально, хотя

Введенный URL:

https://7z48go76gd.execute -api.ap-southeast-1.amazonaws.com / production

После загрузки:

https://7z48go76gd.execute -api.ap-southeast-1.amazonaws.com / производство / производство

I 'мы пытались поиграться с environment.prod.ts, environment.serverless.ts, а также с файлом package.json с разными вариациями, но безуспешно.

environment.serverless.ts / environment.prod.ts:

export const environment = {
  production: true,
  BASE_URL: 'https://tj2rdz0qn1.execute-api.ap-southeast-1.amazonaws.com/production',
  // when you deploy your app to your own server you should replace the BASE_URL with the target domain for example:
  // BASE_URL: 'https://site-preview.angular-templates.io',
  baseHref: '/'
};

package.json:

  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "lint": "ng lint crc-web",
    "build:client-and-server-bundles": "ng build --prod && ng run crc-web:server:production",
    "build:ssr": "npm run build:client-and-server-bundles && npm run compile:server",
    "compile:server": "tsc -p server.tsconfig.json",
    "serve:ssr": "node dist/server",
    "build:browser:prod": "ng build --prod",
    "build:browser:serverless": "ng build --prod --base-href /production/",
    "build:serverless": "npm run build:browser:serverless && npm run build:server:serverless",
    "build:prod": "npm run build:browser:prod && npm run build:server:prod",
    "server": "node local.js",
    "build:prod:deploy": "npm run build:prod && npm run deploy",
    "build:serverless:deploy": "npm run build:serverless && npm run deploy",
    "deploy": "serverless deploy",
    "build:server:prod": "ng run crc-web:server && webpack --config webpack.server.config.js --progress --colors",
    "build:server:serverless": "ng run crc-web:server:serverless && webpack --config webpack.server.config.js --progress --colors --max_old_space_size=8192",
    "fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit"
  },

Ответы [ 3 ]

0 голосов
/ 25 июня 2019

это не решает проблему.когда он развернут в шлюзе API, он находится в / production https://7z48go76gd.execute -api.ap-southeast-1.amazonaws.com / production

base-href должен быть /продукция для угловых для работы в api gateway.в противном случае у вас нет доступа к https://7z48go76gd.execute -api.ap-southeast-1.amazonaws.com

, когда он привязан к пользовательскому домену, ему нужен base-href длябыть /

У меня та же проблема, кто-нибудь знает, как ее решить?

0 голосов
/ 20 июля 2019

У меня была такая же проблема.В package.json изменение скрипта build:browser:serverless на ng build --prod решило проблему.

0 голосов
/ 09 февраля 2019

Попробуйте:

npm run build: prod: deploy

Скрипт build:prod:deploy не будет перезаписывать ваш base-href.

Сценарий npm run build:serverless:deploy устанавливает base-href на '/ production /' (взгляните на скрипт build: browser: serverless в package.json).

Это похоже нанесоответствие в Serverless Angular Universal и может привести к многочисленным проблемам с этапами API Gateway или пользовательскими доменами.

Если это не решило вашу проблему, пожалуйста, опубликуйте содержимое файла src / app / app-routing.module.ts и serverless.yml

...