tom*_*456 7 node.js express angularjs
努力让html5模式与ui-router很好地配合,但似乎有很多问题
我目前无法解决的问题很奇怪所以任何建议都值得赞赏.
我有这些状态:
.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"
})
Run Code Online (Sandbox Code Playgroud)
当不在html5模式(使用hashbang)时,我导航到/#/app/docs/create一切正常,在控制台中没有错误.
但是,当IN html5模式和我导航到/app/docs/create我在控制台中得到一大堆错误,说明Uncaught SyntaxError: Unexpected token <我的每个控制器和服务.

对不起,我不能更详细,但我根本不知道是什么导致了这个问题?
Cha*_*son 11
要看的一件大事是您的网址.尝试在您的templateUrls和您的Javascript包含URL之前放置一个'/',这样它们就是绝对的URL.当浏览器尝试访问JS文件并且它返回HTML(通常是404页面)时,该错误非常常见.
一旦您开始查看"/ docs/create"之类的URL,浏览器就会将相对URL视为其下的子路径,如果您没有捕获它,则很容易导致此错误.(查看上面调试器中的"网络"选项卡可以帮助确认这一点.)
| 归档时间: |
|
| 查看次数: |
2489 次 |
| 最近记录: |