Winkel-CLI: Ändern-REST-API-URL auf bauen
Möchte ich entfernen meinen lokalen server-Präfix von meinem REST-API-URLs (Beispiel http://localhost:8080) bei der Gebäude für die Produktion (ng build --prod
).
Ich bekommen, dass es etwas mit der Umwelt zu tun Datei environment.prod.ts
, aber finde keine Beispiele, dass Sie zur Erreichung der oben genannten.
Wäre toll, wenn mir jemand hilft, begonnen zu erhalten!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dont codieren Sie die URL.
Verwenden Umgebung.prod.ts und Umgebung.ts Dateien, die im inneren src/Umgebungen.
für localhost in der Umgebung.ts-Datei einige Variablen zum speichern der url.
für die Produktion, in der Umwelt.prod.ts
Wenn Sie in Ihren code importieren Sie die Variablen,
wenn Ihre Verwendung für die Produktion verwenden, Winkel-cli-Befehl option
Den Inhalt der Datei auf die aktuelle Umgebung überschreibt diese beim bauen.
Das build-system standardmäßig auf die dev-Umgebung, die verwendet
environment.ts
, aber wenn Sie das tunng build --env=prod
dannenvironment.prod.ts
wird stattdessen verwendet werden.Die Liste von denen die env-Karten, auf die Datei kann gefunden werden in
.angular-cli.json
.Weitere Abfragen beziehen,
https://angular.io/guide/deployment
environment
ist nicht zu machen Sie vermeiden hardcoding :shrug:. API-URLs gesetzt werden sollten, über environment-Variablen. Eine variable in einer Datei namensenvironment
es ist nicht eine Umgebungsvariable.Relative URLs
Setzen einen API_URL in Ihrer Umgebung config ist eine gute Idee, aber wenn Sie Ihre API und client-app wird serviert vom gleichen server oder domain haben, können Sie , verwenden Sie relative URLs anstelle. Es ist viel einfacher einzurichten und vereinfacht den build-Prozess.
Hier ist etwas code, der ein Leben in einer API-service.
Wenn Sie mit der Umgebung.API_URL, können Sie noch konfigurieren, dass der Wert leer sein.
Dies kann hilfreich sein, wenn Sie sind servieren Sie Ihre app und die API von separaten localhost-Server in einer Entwicklungsumgebung. Sie könnten zum Beispiel
ng serve
von localhost:4200, und führen Sie Ihre API von PHP, C#, Java, etc. - backend auf localhost:43210. Sie müssen die API_URL config für die Entwicklung.Als bonus, hier ein Beispiel, ApiService, dass ist eine injizierbare Objekt, das Sie verwenden können, um Ihre app!
https://github.com/gothinkster/angular-realworld-example-app/blob/63f5cd879b5e1519abfb8307727c37ff7b890d92/src/app/core/services/api.service.ts
Achten Sie auf die base-ref in Ihrer Haupt-HTML-Seite als auch.
Einen möglichen Weg, das zu erreichen ist, definieren die verschiedenen Basis-URLs basierend auf
isDevMode()
im code. Zum Beispiel,Edit: Dies soll zur illustration. Sie werden wahrscheinlich möchten Sie einige type-of (env-abhängig) "config" im echten code.