2016-12-06 4 views
2

Wir statische Web-Seiten laden, indem index.html in einem Assets Ordner und geben den Weg in Routerladen statische angular2 Webprojekt mit Vert.x

router.route("/assets/*").handler(StaticHandler.create("assets")); 

mit Vert.x Wenn ich ein Angular2 setzen bauen Projekt in Assets Ordner und versuchen, Index.html zu laden, kann Browser Angular2 nicht verstehen, da keine Abhängigkeiten im Browser geladen sind.

Wie ich weiß, können wir Lite-Server oder Knoten verwenden, um Angular2-Projekt auszuführen.

Gibt es eine Möglichkeit, das Projekt Angular2 mit vert.x zu laden oder gibt es eine andere Lösung ohne Webserver?

Antwort

2

Wie in Vert.x docs angegeben,

Alle Anträge auf Pfaden durch den statischen Handler gehandhabt führt in Dateien aus einem Verzeichnis auf dem Dateisystem oder aus dem Classpath serviert. Das standardmäßige statische Dateiverzeichnis ist webroot, aber dies kann konfiguriert werden.

Wie Sie die Standard-Web-Stammordner konfiguriert haben Vermögenswerte jede Anforderung Weg sein /assets/ führt unter Vermögenswerte/Vermögen in Datei/ als serviert werden auch in der offiziellen Dokumentation angegeben:

Zum Beispiel, wenn es eine Anfrage mit dem Pfad /static/css/mystyles.cssgabDer statische Server sucht nach einer Datei im Verzeichnis webroot/static/css/mystyle.css.

z. eine Anforderung mit einem Pfad /assets/js/angular2.js den Server anweisen, wird unter assets/assets/js für eine Datei suchen/angular2.js daher sollten Sie:

  • Entweder Ihre statische bewegen Vermögenswerte unter Vermögenswerte/Vermögenswerte/ Ordner.
  • Oder behalten Sie den Standardstammordner und platzieren Sie Ihre statischen Dateien unter webroot/assets.
0

Add-on: für jeden, der auf diesen Beitrag stolpert. Unteres Snippet zur Aktualisierung im Browser.

Stapel - Vertx Serving angular 2 Dateien.

// Create a router endpoint for the static content. 

    basically route any files - js, css, jpg etc 
    router.route("/*") 
    .handler(StaticHandler.create("webroot").setCachingEnabled(false)); 

    // so anything else re route to home page 
    router.route("/*").handler(rc -> { 
     logger.info("For refresh handling"); 

     rc.response().sendFile("webroot/index.html"); 

    });