tutorial template sref multiple div javascript angularjs angular-ui-router

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



ui router angularjs tutorial (3)

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 su 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 recurrirá a hashbang .

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 ''#'' de la etiqueta <a> esto no funciona.

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


Si está utilizando Angular 1.6+ , también deberá 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>


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() ? >" >