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

后端 未结 3 1456
旧巷少年郎
旧巷少年郎 2020-11-27 11:56

I\'m using the angular-ui-router library and I have a problem with URLs.

I have the following code:

app.js:

app.config(function ($stateProvid         


        
相关标签:
3条回答
  • 2020-11-27 12:27

    You need to enable HTML5Mode if you want navigation without hash tags:

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

    You will also need to tell angular the root URL of your app by adding the following code to the <head> of your HTML file:

    <base href="/">
    

    Be aware that support for HTML5 mode depends on the browser. For those who don't support the History API, Angular will fallback to hashbang.

    0 讨论(0)
  • 2020-11-27 12:32
        yourApp.config(function ($stateProvider, $urlRouterProvider,$locationProvider) {
    
        $urlRouterProvider.otherwise('/home');
    
        //add this line in your routing code   
        $locationProvider.html5Mode(true);
    
        $stateProvider.state('web.home', {
                    url: '/home',
                    templateUrl: 'pages/home.html',
                    controller: 'mainController'         
                })
        }
    

    in your index.php or index.html in < head > tag insert

    < base href="/" >
    

    for CodeIgniter :

    <base href=" < ?php echo base_url() ?  >" >
    
    0 讨论(0)
  • 2020-11-27 12:38

    If you are using Angular 1.6+, you will also need to remove the hashPrefix from the URL:

    appModule.config(['$locationProvider', function($locationProvider) {
      $locationProvider.hashPrefix(''); // by default '!'
      $locationProvider.html5Mode(true);
    }]);
    

    Don't forget to change the base as well:

    <head>
        ...
        <base href="/">
    </head>
    
    0 讨论(0)
提交回复
热议问题