Pregunta Cómo eliminar el signo '#' en las URL de angular-ui-router


Estoy usando la biblioteca angular-ui-router y tengo un problema con las URL.

Tengo el siguiente código:

app.js:

app.config(function ($stateProvider, $urlRouterProvider) {
$stateProvider
    .state('state', {
        url: '/state',
        templateUrl: 'templates/state.html',
        onEnter: function () {
            /*... code ...*/
        }
    })});

index.html:

<a href="#/state">STATE</a>

Esto funciona, pero cuando elimino '#' del <a> etiqueta esto no funciona

¿Cómo puedo eliminar el signo '#' de la URL?


74
2018-02-28 18:16


origen


Respuestas:


Debe habilitar HTML5Mode si desea navegar sin etiquetas hash:

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

También deberá indicarle a angular la URL raíz de su aplicación agregando el siguiente código al <head> de tu archivo HTML:

<base href="/">

Tenga en cuenta que la compatibilidad con el modo HTML5 depende del navegador. Para aquellos que no son compatibles con la API de historial, Angular retrocederá a hashbang.


113
2018-02-28 18:20



Si estás usando Angular 1.6+, también necesitarás eliminar el hashPrefix de la URL:

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

No olvides cambiar la base también:

<head>
    ...
    <base href="/">
</head>

9
2018-04-24 13:03



    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'         
            })
    }

en su inserción de etiquetas index.php o index.html en <head>

< base href="/" >

para CodeIgniter :

<base href=" < ?php echo base_url() ?  >" >

3
2018-04-29 09:40