AngularJS和GitHub Pages - 加载模板问题

Mis*_*hko 2 angularjs github-pages angular-routing

我正试图在http://moroshko.github.io/seekdeck的 GitHub页面上设置我的Angular应用程序.

Angular路线定义application.js如下:

<html ng-app="SeekDeck">
  <head>
    ...
    <script src="scripts/application.js"></script>
    ...
  </head>
  <body>
    <div ng-view></div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

application.js/seekdeck/scripts按预期加载的.

我的应用程序路线如下所示:

// Part of application.js
$routeProvider
  .when("/", {
    templateUrl: "templates/dashboard/dashboard.html",
    ...
  })
  ...
Run Code Online (Sandbox Code Playgroud)

当Angular尝试获取dashboard.html模板时,它会尝试从而/templates/dashboard不是加载模板,/seekdeck/templates/dashboard因此无法找到它.

任何想法为什么会发生这种情况,或者我该如何解决这个问题?

jsh*_*ley 5

发生这种情况是因为angular期望url相对于域的根,而不是相对于应用的位置.换句话说,它是希望它是相对于moroshko.github.iomoroshko.github.io/seekdeck.

您可以通过向basehtml页面添加元素并将其href属性设置为您希望应用程序根目录的路径(在您的情况下/seekdeck/)来轻松解决此问题

将以下标记放在<head>html页面中:

<base href="/seekdeck/" />
Run Code Online (Sandbox Code Playgroud)

还要确保你正在html5mode(true)进入$locationProvider.

有一个优秀的博客帖子大约是这里