始终显示" index.html#!"在angularjs路由的url中

时间:2017-11-07 17:02:50

标签: angularjs angular-ui-router

我在Visual Studio中的网站项目中的angularjs应用程序中使用ui-router,但它只适用于路由http://localhost/index.html#!/my-page,但我希望路由只有http://localhost/my-page

有办法做到这一点吗?

这是我的路由代码:

angular.module('nutricaoApp').config(function ($stateProvider, $urlRouterProvider, $locationProvider, $urlMatcherFactoryProvider) {
    $urlMatcherFactoryProvider.caseInsensitive(true);

    $urlRouterProvider.otherwise('cardapio-paciente');

    $stateProvider
    .state('my-page', {
        url: '/my-page',
        templateUrl: './app/components/my-page.html',
        controller: 'MyPageController'
    });

  $locationProvider.html5Mode(false);
});

1 个答案:

答案 0 :(得分:3)

您可以尝试:

app.config(["$locationProvider", function($locationProvider) {
  $locationProvider.html5Mode(true);
}]);

<base href="/">

How to delete '#' sign in angular-ui-router URLs

并配置您的.htaccess以删除index.html

RewriteEngine On
RewriteRule ^index\.html$ / [R=301,L]
RewriteRule ^(.*)/index\.html$ /$1/ [R=301,L]

关于codepen的工作示例

https://codepen.io/centrodph/pen/gXGVvz?editors=1010