web-dev-qa-db-fra.com

AngularJS "#!" sur l'URL

quelqu'un sait quoi "#!" Veux dire. sur l'URL?

Je travaillais jusqu'à ce que cela apparaisse, j'avais un "#" toujours dans l'URL et je voudrais le garder ainsi . Actuellement, le routage ne fonctionne plus, probablement à cause de ce changement d'URL.

Cela fait partie d'un projet d'entreprise, je ne veux pas passer à html5Mode.

J'ai essayé d'utiliser:

$locationProvider.hashPrefix("");

Même en corrigeant l’URL de cette façon, le routage pose des problèmes

9
A. Pozzi

C'est appelé hash-bang.

Pour réparer cette utilisation: 

    angular.module('yourApp', [])
    .config(['$locationProvider', function($locationProvider) {
        $locationProvider.hashPrefix('');
    }]);

Ajouter html5Mode éliminerait même le '#' dans l'URL, mais si vous actualisez la page, vous obtiendrez une erreur 404. Cela peut être corrigé en configurant un peu votre serveur. Pour cela, vous pouvez consulter les didacticiels Nice: 

  1. https://scotch.io/tutorials/pretty-urls-in-angularjs-removing-the-hashtag
  2. https://www.theodo.fr/blog/2017/01/pretty-url-in-angularjs-and-loopback-drop-the/

Il y a une autre réponse au problème de hashbang dans stackoverlow:

Faire des liens comme Twitter, Hash-Bang #! URL

8
Ajasra

Vous pouvez utiliser html5Mode dans votre fournisseur de localisation.

$locationProvider.html5Mode(true);

plus d'infos https://scotch.io/tutorials/pretty-urls-in-angularjs-removing-the-hashtag

0
Danilo Velasquez

Définissez html5mode true dans votre app.config 

$locationProvider.html5Mode(true).hashPrefix('*');
0
rvchauhan