URL hash-bang (#! /) Prefisso invece di semplice hash (# /) in Angular 1.6

I miei URL su un progetto AngularJS sono cambiati da localhost:3000/admin#/ a localhost:3000/admin#!/ Dall’ultima volta che ho lavorato al mio progetto …

Niente trovato sul web, qualcuno sa che cos’è questo?

È nuovo da AngularJS 1.6, che ha aggiunto un nuovo prefisso hash.

A causa di aa077e8 , il prefisso hash predefinito utilizzato per gli URL hash-bang $location è stato modificato dalla stringa vuota ( '' ) al bang ( '!' ). Se la tua applicazione non utilizza la modalità HTML5 o è in esecuzione su browser che non supportano la modalità HTML5 e non hai specificato il tuo prefisso hash, gli URL del lato client ora contengono un ! prefisso. Ad esempio, anziché mydomain.com/#/a/b/c l’URL diventerà mydomain.com/#!/a/b/c .

Fonte qui per ulteriori informazioni.


Se vuoi rimuovere questo prefisso, aggiungi questo codice alla tua configurazione:

 appModule.config(['$locationProvider', function($locationProvider) { $locationProvider.hashPrefix(''); }]); 

Tutti stanno proponendo di rimuovere il prefisso, ma potresti anche semplicemente aggiungere un ! agli URL lato client (se non si utilizza la modalità HTML5, cosa che probabilmente si fa se si è qui).

Quindi, nei tuoi file lato client , aggiorna gli URL come questo:

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

In Angular 1.6.0, l’hashPrefix predefinito è stato cambiato in ! . Vedi il commit relativo e la voce del log delle modifiche .