2016-08-02 13 views
1

Ich habe Node und Angular seit einer ganzen Weile verwendet, aber nie wirklich viel Nachdenken oder Aufwand in die Back-End-Struktur. Ich versuche, den Client und den Server aufzuteilen und ein Skelett zu erstellen, das ich für die meisten meiner Anwendungen verwenden kann. Alles andere ist bis jetzt gut und glatt gelaufen. Hier ist, was meine Verzeichnisstruktur wie folgt aussieht:Ressourcen in öffentlichen Verzeichnis nicht verfügbar

App directory structure

In app.js, verwende ich diese Linie den statischen Vermögenswerte Ordner festlegen: app.use(express.static(config.server.distFolder));

, die einfach zu /client/dist verweist. Jetzt funktioniert alles gut, es lädt index.html und alle CSS/JS-Assets, die mit der HTML-Datei verknüpft sind. Das einzige, was nicht geladen wird, ist der views-Ordner in dem eckigen Ordner, wie unten abgebildet.

Console inspector - sources

Da der Winkel Router nicht die Ansicht finden (weil es nicht geladen wird), wird standardmäßig Laden wieder index.html die Seite verursacht in der ng-view Richtlinie dupliziert nur werden.

Ich vermute, dies liegt daran, dass es überhaupt nicht in der Datei index.html verwendet/aufgerufen/geladen wird. Wie kann ich diesen Ordner in die statischen Assets aufnehmen? In anderen Code sehe ich es so aus, als wäre es einfach da. Ich muss etwas verpassen. Mein ursprüngliches Verständnis der Einstellung des statischen Verzeichnisses war alles in diesem Verzeichnis wurde für den Client verfügbar.

Antwort

0

Natürlich war es eine blöd einfache Lösung. Angular war auf der Suche nach der Aussicht in /views, wenn es /angular/views sein sollte. Überblickte den Stammordner.

Alles, was ich tat dies war ändern:

$stateProvider 
    .state('index', { 
     url: '/', 
     templateUrl: 'views/index.html' 
    }); 

dazu:

$stateProvider 
    .state('index', { 
     url: '/', 
     templateUrl: 'angular/views/index.html' 
    });