我正在尝试在my Angular app的GitHub页面上设置http://moroshko.github.io/seekdeck。
Angular路线在application.js
:
<html ng-app="SeekDeck">
<head>
...
<script src="scripts/application.js"></script>
...
</head>
<body>
<div ng-view></div>
</body>
</html>
正如预期的那样, application.js
从/seekdeck/scripts
加载。
我的应用路线如下:
// Part of application.js
$routeProvider
.when("/", {
templateUrl: "templates/dashboard/dashboard.html",
...
})
...
当Angular尝试获取dashboard.html
模板时,它会尝试从/templates/dashboard
而不是/seekdeck/templates/dashboard
加载它,因此无法找到它。
任何想法为什么会发生这种情况,或者我该如何解决这个问题?
答案 0 :(得分:5)
这种情况正在发生,因为angular希望url相对于域的根目录而不是应用程序的位置。换句话说,它期望它相对于moroshko.github.io
而不是moroshko.github.io/seekdeck
。
您可以通过向html页面添加base
元素并将其href
属性设置为您希望应用根目录的路径(在您的情况下{{1 }})
将以下标记放在html页面的/seekdeck/
中:
<head>
另请确保在<base href="/seekdeck/" />
中设置html5mode(true)
。
有一篇关于它的优秀博文HERE