我正在使用角度进行路由的ui-router。我的主网址后面有一些奇怪的#!
。
http://localhost/bootstrap/newBlogProject/index.html#!/home
在index.html之后的上述网址中,我必须删除此#!
符号。
答案 0 :(得分:0)
尝试设置$ locationProvider.hashPrefix(''); 这是我在路由配置中设置hashPrefix的示例。
function config($httpProvider, $routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
controller: 'HomeController',
controllerAs: 'vm',
access: {
restricted: false
}
});
$locationProvider.hashPrefix('');
}
答案 1 :(得分:0)
您必须启用$ locationProvider的html5Mode以避免使用hashBang(#!)。
function config($locationProvider) {
$locationProvider.html5Mode(true);
}
它会强制ui-router使用history api来操作URL并避免使用hashBang。 与解释here一样。
如果是boolean,则将html5Mode.enabled设置为value。如果是object,则将enabled,requireBase和rewriteLinks设置为各自的值。支持的属性:
enabled - {boolean} - (默认值:false)如果为true,将依赖history.pushState来更改支持的URL。将回退到不支持pushState的浏览器中的哈希前缀路径。
requireBase - {boolean} - (默认值:true)启用html5Mode时,指定是否需要存在标记。如果enabled和requireBase为true,并且不存在基本标记,则在注入$ location时将引发错误。有关详细信息,请参阅$ location指南
rewriteLinks - {boolean | string} - (默认值:true)启用html5Mode时,启用/禁用相对链接的URL重写。如果设置为字符串,则URL重写仅发生在具有与给定字符串匹配的属性的链接上。例如,如果设置为' internal-link',则只会为链接重写URL。请注意,属性名称规范化不适用于此处,因此' internalLink'不符合'内部链接'