Wie zu zwingen, Winkel-cli zu dienen, die die bundle-Dateien von einem absoluten Ort dann eher base-href
Ich habe Mühe mit dem bereitstellen von Winkel-4 Projekt erstellt mit cli, um eine Spring-boot-server.
In der .Winkel-cli.json ich Hinzugefügt outdir-Eigenschaft, die Punkte zu einem benutzerdefinierten Ordner im Frühjahr webapp-Ordner, die direkt in den server (webapp/main).
Den cli-Befehl bauen, das ich verwende ist:
ng build --base-href /main/ -a main
Erstellt, die die wichtigsten Ordner in der webapp, mit der index.html mit dem folgenden script-tags:
<base href="/main/">
...
<script type="text/javascript" src="inline.bundle.js"></script>
<script type="text/javascript" src="polyfills.bundle.js"></script>
<script type="text/javascript" src="vendor.bundle.js"></script>
<script type="text/javascript" src="main.bundle.js"></script></body>
was bedeutet, dass diese Dateien angefragt werden /main-Präfix, - e.g localhost:8080/main/inline.bundle.js
Das ist gut für eine Basis-app, aber ein Problem wird, wenn Routen Hinzugefügt werden, um die Winkel-app (Im Frühjahr, ich bin dienen die index.html für alle Pfade, die mit /main, zu erlauben, dass der Winkel Strecken, um richtig zu arbeiten, die bewirken, dass eine redirect-Schleife, die für die bundles, , wie Sie sind, beginnend mit /main sowie.
Wie kann ich erzwingen, das generierte Skript-tags für die Verwendung einer benutzerdefinierten Speicherort? Oder zumindest die genaue Angabe der absoluten Position, und nicht relais auf der base-href - (also ich kann das ändern der outDir-Eigenschaft auf Haupt-app, und das problem ist gelöst).
Die gewünschte Lösung wäre so etwas wie dieses:
<script type="text/javascript" src="/main-app/main.bundle.js"></script>
Dachte ich vielleicht hinzufügen, dass ein Skript ausgeführt werden, nachdem die ng zu bauen, die ändern den script-tags, aber es ist eine schmutzige Lösung, und auch nicht mit ng build --Uhr, die entscheidend für die Entwicklung...
Referenz, hier ist der Frühling controller-Funktion, dass die Karten /main Anforderungen:
@RequestMapping("main/**")
public String mainRoute(HttpServletRequest request) {
return "/main/index.html";
}
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist
ng build
wiki: https://github.com/angular/angular-cli/wiki/buildnutzen Sie bitte
--deploy-url="/main-app/"
option. dieses generiert:Habe ich ein ähnliches Problem, wo ich
ng build
und es erzeugt Dateien(index.html, main.js, polufills.js , styles.js etc) in der Ausgabedatei(haben setzen Sie diesen Pfad in eckige.json) - Ressource/static/. Aber ich kann nicht sehen Sie die Benutzeroberfläche beim starten von tomcat auf localhost:8080/. Ich glaube, es ist nicht in der Lage, laden der statischen Dateien, nicht sicher, was ich verpasst habe oder wie können wir die Bereitstellung einfacher.Machte ich einen controller dienen die front-end-Teil:
Meine index.html:
Aber immer noch kein user-interface, wenn der tomcat ausgeführt wird. Obwohl ich früher
ng build --deploy-url="/"
es erstellte scripts in index.html alsImmer noch kein Glück bei der es zu zeigen, jede UI-Inhalte auf http://localhost:8080/