2015-07-07 4 views
6

Ich frage das, weil ein paar Mal habe ich versucht, mit dem $locationProvider.html5Mode(true) Befehl zusammen mit <base href="/"> zu spielen und lief in eine Menge Fehler beim Aufruf der Skripte/Stile/Bilder für mein Projekt. Ich denke, es muss etwas passieren, was ich falsch mache, aber gibt es eine bestimmte Ordnerstruktur, der Sie folgen sollten, damit Sie nicht auf diese Fehler stoßen? Oder gibt es einen bestimmten Weg, dass die funktioniert, die ich nicht ganz verstehe?

Kürzlich dachte ich, ich würde es auf einer sehr, sehr kleinen App versuchen. Es ist im Grunde eine statische Website, aber ich möchte Angulars Routing nutzen, um sicherzustellen, dass alle Seiten sofort geladen werden können. So würde meine Struktur so etwas wie diese:

my-project 
    css 
    images 
    js 
     angular 
      app.js 
      app.routes.js 
      mainCtrl.js 
    views 
     home.html 
     about.html 
     contact.html 
    index.html 

So weiß ich, dass diese Ordnerstruktur ist nicht groß, aber ich werde nur in diesem Projekt für das Routing mit Angular wird, nicht mehr, so paßt es meine Bedürfnisse .

Ich habe in den Kopf <base href="/">, in Körper setzen ng-app und ng-controller, und im Inneren des Körpers eine <div ng-view> irgendwo zu setzen.

Ich fügte in $locationProvider.html5Mode(true) hinzu und versuchte die App aus. Alle meine Skripte werden dann als geladen, was falsch ist. Das Projekt befindet sich in einem Ordner, so dass sich index.html in http://localhost:8888/my-project/index.html befindet. So sollte es zum Beispiel die Skripte von http://localhost:8888/my-project/js/angular/app.js laden.

Gibt es etwas, das ich über die nicht verstehe? Irgendwann kann ich diese App irgendwo online hosten, also möchte ich, dass die URLs zu Skripten usw. für die Datei wirklich relevant sind. Hat jemand Ideen?

In Ordnung, so über dem base href Tag würde ich meine CSS-Stile haben, die als css/style.css und an der Unterseite meines body-Tag verknüpft werden würde würde ich meine Skripte als js/init.js oder js/angular/app.js zum Beispiel geladen haben. Dies würde versuchen, es zu laden, als ob der js Ordner direkt bei localhost:8888/js liegt.

+0

Sounds wie Sie brauchen '' – Phil

+1

'base href' ist nicht nur ein angularer Aufruf, sondern auch erzählt alle Ihre relativen Links, wo Sie anfangen sollen. Wo Ihre js-Dateien geladen werden, sollte aber nichts mit Ihrem eckigen Routing zu tun haben. Wie lädst du sie und wo setzt du die Base auf? – Jan

+0

Können Sie ein Beispiel Ihrer 'index.html' Datei zeigen, insbesondere die'

Verwandte Themen