Ich möchte eine bestehende Site asp.net 4.5 mvc aktualisieren, die zwei eckige Anwendungen auf einer Site asp.netcore 2 mvc mit möglicherweise zwei Spas hat. Verwenden Sie Aspnet Javascriptservices mit der neuen eckigen CLI-Vorlage.
Idealerweise möchte ich zwei Spa's bei http://mysite/member
und das andere bei http://mysite/admin
Ich habe mit nur einem members
begonnen und anfangs <base href="/members/" />
in der index.html verwendet (aber dann getauscht, um die Eigenschaft baseHref "in der .angular-cli.json zu verwenden (was die gleichen Ergebnisse liefert)) welche Hälfte funktioniert lokal beim Debuggen der App liefert es Seiten und navigiert wie erwartet, aber in der Konsole kann ich zone.js Fehler sehen.
Wenn ich eine neue Registerkarte öffne und in
einfüge http://localhost:50930/**members**/sockjs-node/info?t=1518084503138
dann bekomme ich was wie eine richtige Antwort aussieht
{"websocket":true,"origins":["*:*"],"cookie_needed":false,"entropy":2082738399}
Wenn ich dies für den Azure-App-Service (Produktion) bereitstelle und dann zu
navigiere https://mysite.azurewebsites.net/members
, dann lädt das Spa überhaupt nicht und es scheint, dass das gebündelte js die index.html hat, die es ins Innere lädt.
Hat es jemand geschafft, die eckige Spa-Vorlage als eine Anwendung außerhalb der MVC-Site zu verwenden? Ich habe ein Ticket auf dem Repo erstellt, aber ich vermute, dass es über den Rahmen des Projekts hinausgeht Ссылка
Ich habe auch ein Repo erstellt, um zu demonstrieren, was ich erreichen möchte Ссылка
Sie müssen den Webserver so konfigurieren, dass er immer die Seite index.html Ihres angularen PWA zurückgibt.
Standardmäßig gibt der Server einen Fehler 404 zurück, da für / members keine Datei vorhanden ist. Aber Sie möchten eckig mit den Routen umgehen und deshalb müssen Sie immer die index.html statt einer 404-Fehlerseite bedienen.
In dieser Dokumentation wird dies explizit für die JavaScript-Services von aspnet erläutert: Ссылка
Ich habe das schon mal in meinen Apps verwendet. In einer späteren Version habe ich Caching hinzugefügt, um es schneller zu machen, aber es funktioniert immer unabhängig davon, wo es bereitgestellt wird. Es erleichtert das Verschieben von Dateien zwischen Servern oder sogar nur Ordnern, besonders wenn wir zwischen Dev-, Test- und Prod-Servern wechseln.
%Vor% Dann können Sie diese Middleware einfach von Startup.cs
mit app.UseAngularDefaultRoute();
Tags und Links angular asp.net-core single-page-application angular-cli javascriptservices