最近我注意到,在AngularJS应用程序中使用ngRoute
模块时,路由在URL中包含#!
,这以前只有#
。
例如,www.webiste.com/#/login
变成了www.website.com/#!/login
我需要使用以下代码启用html5Mode
,并禁用requireBase
,从而完全删除基础内容:
$locationProvider.html5Mode({
enabled: true,
requireBase: false
});
网址更改为www.website.com/login
,这个没问题,但会误导用户,因为这不是Angular SPA的URL形式。
如果我没有启用html5Mode
,则URL会被编码,我无法绕过它。所以www.website.com/#/login
变成了www.website.com/#!/#%2Flogin
(注意后面的/
被编码为%2F
)。
这是开发人员为了某些特定目的而实施的更改吗?这有什么区别?我需要对我的应用程序进行哪些更改才能使其正常工作?我做错了什么吗?
Github问题链接:https://github.com/angular/angular.js/issues/15547
html5Mode
来消除 URL 中/
(斜杠)的编码。 - Samarth Agarwal