2017-11-08 1 views
1

Haben Sie den angle4-Anwendungs- und Web-API-Datenservice für diese Anwendung. Habe 100 Kunden von diesem Anwendungs- und Datendienst. Sie haben diesen Datendienst und eckige Anwendung auf ihrem IIS. Also jede 100 Winkelapplikation benutzt eine andere Endpunktadresse. So eckige Anwendung in jedem Kunden benötigt Konfiguration für die Einstellung der Endpunktadresse - die im Kunden eingestellt werden muss. Kein konstanter Endpunkt kann in jede Datei mit eckiger Anwendung geschrieben werden. Wie löst man das für eine eckige 4/5 Anwendung?Konfigurieren Sie den Service-Endpunkt für die eckige 4/5-Anwendung.

+0

Genauer gesagt - der Endpunkt kann nicht in * .ts (environment * .ts) -Dateien fest codiert werden, da sie im Kunden nicht geändert werden können. Ich brauche eine Konfigurationsdatei für die Client-Anwendung, die für jeden Kunden individuell geändert werden kann. Datendienst (asp.net web api) ist in Ordnung, es hat seine web.config - es funktioniert. Aber die Konfigurationsdatei für eckige Anwendungen wird nicht unterstützt. – bmi

Antwort

0

Eine Lösung, die ich für dieses Problem gesehen habe, ist eine Datei namens configuration.json (oder welchen Namen Sie möchten) im Ordner Assets Ihres Projekts, und ändern Sie alle Endpunkte, wenn Sie sind Bereitstellung vor Ort.

In Ihrem Code sollten Sie einen eckigen Dienst erstellen, der den JSON aus der Datei liest und ihn als Objekt für die Teile Ihrer Anwendung verfügbar macht, die die Endpunkte des Datendienstes benötigen. Dies beinhaltet die Verwendung von HttpClient, um eine GET-Anforderung für die Datei configuration.json auszuführen.

Darüber hinaus können Sie einen Resolver verwenden, der den Dienst verwendet, um die Umgebungsdaten vor dem Navigieren zu jeder Route aufzulösen.

Dieser Artikel beschreibt die Lösung gut genug: https://www.intertech.com/Blog/deploying-angular-4-apps-with-environment-specific-info/

Der wichtigste Punkt ist, dass Sie die Endpunkte in der Datei ändern können und Ihre Anwendung wird sie zur Laufzeit lösen.

+1

Danke, ich habe so etwas gefunden - Lesen (JSON) Konfigurationsdatei von Assets Ordner. Aber - wie ich sehe, haben Web-Anwendung Probleme mit dem Lesen von lokalen Dateien - wahrscheinlich wegen der Sicherheit. In einigen Fällen - wenn Web-API-URL der Web-Client-URL ähnelt - ist es möglich, Dateien aus dem Ordner "Assets" zu lesen. In einigen Fällen habe ich schlechte Ergebnisse erhalten (ungültiger Pfad in der Web-Anwendung, relativer Pfad zu den Assets-Dateien funktionierte nicht gut). Ich fand eine akzeptable Lösung mit der Verwendung von APP_INITIALIZER, JavaScript-Funktion - es funktioniert mit AOT-Kompilierung und im Prod-Modus. – bmi

Verwandte Themen