2014-07-15 11 views
7

Bemüht html5-Modus zu spielen schön mit ui-Router zu bekommen, aber es scheint nur eine Menge ProblemeHTML5-Modus - ui-Router - Uncaught Syntaxerror: unerwartetes Token <

One ich kann nicht in der Nähe zu sein bei Der Moment ist sehr seltsam, so dass alle Vorschläge geschätzt werden.

Ich habe diese Zustände:

 .state('app', { 
       url: '/app', 
       templateUrl: 'views/app/app.html', 
       resolve: { 
        loggedin: checkLoggedin 
       } 
     }) 
     .state('app.docs', { 
       url: "/docs", 
       templateUrl: "views/app/app.docs.html", 
       controller: "DocsController" 
     }) 

     .state('app.create-doc', { 
       url: "/docs/create", 
       templateUrl: "views/app/app.editor.html", 
       controller: "DocController" 
     }) 

     .state('app.edit-doc', { 
       url: "/docs/:short", 
       templateUrl: "views/app/app.editor.html", 
       controller: "DocController" 
     }) 

     .state('app.account', { 
       url: "/account", 
       templateUrl: "views/app/app.account.html", 
       controller: "AccountController" 
     }) 

wenn sie nicht in html5-Modus (die Hash-Bang mit), und ich navigieren zu /#/app/docs/create alles ohne Fehler in der Konsole funktioniert gut.

Wenn jedoch im HTML5-Modus und ich zu /app/docs/create navigieren, bekomme ich eine ganze Ladung von Fehlern in der Konsole unter Angabe Uncaught SyntaxError: Unexpected token < für jeden meiner Controller und Services.

enter image description here

Es tut mir leid ich nicht auf diese ausführlicher sein können, aber ich habe einfach keine Ahnung, was das Problem verursacht ???

+1

Es sieht so aus, als ob beim Laden der JavaScript-Dateien eine Fehlerseite zurückgegeben wird. Geben Sie den Pfad zu den Skripts vom Stammverzeichnis aus an. –

Antwort

10

Eine große Sache zu betrachten sind Ihre URLs. Versuchen Sie, ein "/" vor Ihren templateUrls und Ihren Javascript-Include-URLs zu setzen, damit sie absolute URLs sind. Dieser Fehler tritt sehr häufig auf, wenn der Browser versucht, auf eine JS-Datei zuzugreifen, und stattdessen HTML (normalerweise eine 404-Seite) erhält.

Sobald Sie eine URL wie "/ docs/create" anzeigen, behandelt der Browser relative URLs als Unterpfade unter dort und kann leicht zu diesem Fehler führen, wenn Sie ihn nicht abfangen. (Wenn Sie oben im Debugger auf die Registerkarte "Netzwerk" klicken, können Sie dies bestätigen.)

+0

Ja - denke, es ist mit URLs zu tun und nur jetzt zu überprüfen. Seltsam, dass das im html5-Modus das Problem verursacht? – tommyd456

+0

Eigentlich macht HTML5-Modus als Quelle dafür Sinn. Ohne sie haben Sie einen Hash-Bang und die URL selbst ist immer '/'. Damit änderst du die URL ... und relative URLs sind kein Problem, bis du von '/' wegkommst ... :) –

Verwandte Themen