URL hash-bang (#!/) prefix instead of simple hash

2018-12-31 16:56发布

My URLs on an AngularJS project has changed from localhost:3000/admin#/ to localhost:3000/admin#!/ since the last time I worked on my project...

Nothing found on the web, does someone know what is this ?

3条回答
ら面具成の殇う
2楼-- · 2018-12-31 17:24

Everyone is proposing to remove the prefix, but you could also simply add a ! to client-side URLs (if not using HTML5 mode, which you probably do if you're here).

So in your client-side files, update URLS like this:

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

查看更多
后来的你喜欢了谁
3楼-- · 2018-12-31 17:27

It is new from AngularJS 1.6, which added a new hash prefix.

Due to aa077e8, the default hash-prefix used for $location hash-bang URLs has changed from the empty string ('') to the bang ('!'). If your application does not use HTML5 mode or is being run on browsers that do not support HTML5 mode, and you have not specified your own hash-prefix then client side URLs will now contain a ! prefix. For example, rather than mydomain.com/#/a/b/c the URL will become mydomain.com/#!/a/b/c.

Source here for more information.


If you want to remove this prefix, add this code to your config:

appModule.config(['$locationProvider', function($locationProvider) {
  $locationProvider.hashPrefix('');
}]);
查看更多
梦醉为红颜
4楼-- · 2018-12-31 17:35

In Angular 1.6.0, the default hashPrefix has been changed to !. See the related commit and the changelog entry.

查看更多
登录 后发表回答