2 votes

La route Angularjs ne fonctionne pas sans # dans l'URL

J'ai un problème avec mes routes angularjs. Ma configuration de route simplifiée ressemble à :

App.config([ '$routeProvider', function( $routeProvider ) {

$routeProvider.
  when('/', {  
      redirectTo: '/home'
  }).
  when('/home', {
    templateUrl: 'home.html',
    controller: 'HomeCtrl'
  }).
  when('/404', {   
      templateUrl: '404.html'
  }).
  when('/500', {   
      templateUrl: '500.html'
  }).
  when('/:tabName', {   
      templateUrl: 'tabView.html',
      controller: 'TabContentCtrl'
  }).
  when('/:tabName/:widgetName', {    
      templateUrl: 'tabView.html',
      controller: 'TabContentCtrl'
  }).
  otherwise({                    
      redirectTo: '/404'
  });
}]);

Le problème est que lorsque je mets des URL http://myapp o http://myapp/ dans le navigateur, il me redirige nulle part, rien ne se passe, il me redirige même vers une page d'erreur 404. Il commence à fonctionner lorsque j'ajoute un hash à l'URL http://myapp/# Le système fonctionne alors comme je l'avais prévu. Mais pourquoi ma route par défaut pour l'URL racine de l'application ? http://myapp y http://myapp/ n'a pas fonctionné ?

1voto

Daniel Cottone Points 1875

Il suffit d'activer le mode html5 :

config javascript

App.config([ '$routeProvider', function($routeProvider, $locationProvider) {
  $locationProvider.html5Mode(true);
}]);

index.html

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">
    <base href="http://stackoverflow.com/">
  </head>
</html>

0voto

Sangam Pandey Points 1

Cela dépend de la façon dont vous avez configuré votre hôte virtuel et s'il pointe vers votre racine index.html ? Si oui, alors si vous tapez http://myapp il vous emmènerait sans aucun doute à http://myapp/#/home

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X