URL de hachage-bang (#!/ ) préfixe au lieu de hash simple ( # / ) dans Angular 1.6

Mes URL sur un projet AngularJS sont passées de localhost:3000/admin#/ à localhost:3000/admin#!/ depuis la dernière fois que j'ai travaillé sur mon projet...

Rien trouvé sur le web, quelqu'un sait ce que c'est ?

39
demandé sur Mistalis 2016-12-19 18:36:25

3 réponses

Il est nouveau à partir D'AngularJS 1.6, qui a ajouté un nouveau préfixe de hachage.

En raison de aa077e8 , le préfixe de hachage par défaut utilisé pour $location hash-bang URLs a changé de la chaîne vide ('') au bang ('!'). Si votre l'application n'utilise pas le mode HTML5 ou est en cours d'exécution sur les navigateurs qui ne supporte pas le mode HTML5, et vous n'avez pas spécifié le vôtre hash-prefix puis les URL côté client contiendront maintenant un préfixe !. Pour exemple, plutôt que mydomain.com/#/a/b/c, L'URL devenir mydomain.com/#!/a/b/c.

Source ici pour plus d'informations.


Si vous souhaitez supprimer ce préfixe, ajoutez ce code à votre config:

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);
58
répondu Mistalis 2016-12-19 15:39:22

Tout le monde propose de supprimer le préfixe, mais vous pouvez aussi simplement ajouter un ! aux URL côté client (si vous n'utilisez pas le mode HTML5, ce que vous faites probablement si vous êtes ici).

Donc, dans vos fichiers côté client , mettez à jour les URL comme ceci:

#/foo/bar > #!/foo/bar

10
répondu Overdrivr 2017-03-10 07:34:40

Dans Angular 1.6.0, le hashPrefix par défaut a été changé en !. Voir le commit associé et l'entréechangelog .

5
répondu DevDig 2016-12-19 15:39:13