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



好的,我是一个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

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

因此,当你加载页面http://localhost:53465/default.html时,AngularJS将尝试加载路由http://localhost:53465/default.html/#!/,其中路由是/ -出现在hashbang(#!)之后的文本。

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

如果您想将URL加载为http://localhost:53465/dashboard,那么只需按原样提供上述URL。你不需要指定default.html,因为路由处理程序会负责加载相关的HTML文件(基于路由处理程序对象的templateUrl属性)

default.html重命名为index.html,然后您将能够导航到http://localhost:53465/#/dashboard

最新更新