Angular.js route - 如何从路由中删除html文件名

时间:2015-07-31 17:13:56

标签: angularjs

好的,所以我是Angular.js的新手,我正在努力创建一些基本的路由。我的路由有以下定义:

JBenchApp.config(['$routeProvider',
  function($routeProvider) {
      $routeProvider.
        when('/dashboard', {
            templateUrl: 'partials/dashboard.html',
            controller: 'JBenchCtrl'
        }).
        when('/calendar', {
            templateUrl: 'partials/calendar.html',
            controller: 'JBenchCtrl'
        }).
        otherwise({
            redirectTo: '/dashboard'
        });
  }]);

当我加载页面http://localhost:53465/default.html时,我得到的是

http://localhost:53465/default.html#/dashboard

如何将其显示为

http://localhost:53465/dashboard

2 个答案:

答案 0 :(得分:4)

您定义的路由是在URL中的hashbang之后出现的文本 - hashbang,因为您似乎没有将HTML5模式设置为true。

因此,当您加载页面http://localhost:53465/default.html时,AngularJS将尝试加载路由为http://localhost:53465/default.html/#!/的路由/ - 在hashbang(#!)之后显示的文本。

看看你的路线。 /没有路由处理程序。因此,执行otherwise()函数,其仅重定向到路由/dashboard。因此,最终网址为http://localhost:53465/default.html/#!/dashboard

如果您要将网址加载为http://localhost:53465/dashboard,则只需提供上述网址即可。您不必指定default.html,因为路由处理程序负责加载相关的HTML文件(基于路由处理程序对象的templateUrl属性)

答案 1 :(得分:0)

default.html重命名为index.html,然后您就可以导航到http://localhost:53465/#/dashboard