Angularjs 移除#!从我的url
我在angular使用ui路由器进行路由。我遇到了一些奇怪的Angularjs 移除#!从我的url,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我在angular使用ui路由器进行路由。我遇到了一些奇怪的#在我的主url之后 http://localhost/bootstrap/newBlogProject/index.html#!/主页 在index.html之后的上述url中,我必须删除此#符号。尝试设置$locationProvider.hashPrefix(“”); 下面是我在路由配置中设置hashPrefix的示例 function config($httpProvider, $routeProvider, $location
#代码>在我的主url之后
http://localhost/bootstrap/newBlogProject/index.html#!/主页
在index.html之后的上述url中,我必须删除此#代码>符号。尝试设置$locationProvider.hashPrefix(“”);
下面是我在路由配置中设置hashPrefix的示例
function config($httpProvider, $routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
controller: 'HomeController',
controllerAs: 'vm',
access: {
restricted: false
}
});
$locationProvider.hashPrefix('');
}
尝试设置$locationProvider.hashPrefix(“”);
下面是我在路由配置中设置hashPrefix的示例
function config($httpProvider, $routeProvider, $locationProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/home.html',
controller: 'HomeController',
controllerAs: 'vm',
access: {
restricted: false
}
});
$locationProvider.hashPrefix('');
}
您必须启用$locationProvider的HTML5模式以避免使用hashBang(#!)
它将迫使ui路由器使用历史api来操作URL,并避免使用hashBang。
就像我解释的那样
如果为布尔值,则将html5Mode.enabled设置为值。如果对象已启用,则设置为启用,并要求将链接重新建立和重写到相应的值。支持的属性:
- enabled–{boolean}–(默认值:false)如果为true,将依赖history.pushState更改受支持的URL。将退回到不支持pushState的浏览器中的哈希前缀路径
- requireBase-{boolean}-(默认值:true)当启用html5Mode时,指定是否需要显示标记。如果enabled和requireBase为true,并且不存在基标记,则在注入$location时将引发错误。有关详细信息,请参阅$location指南
- 重写链接-{boolean | string}-(默认值:true)当启用HTML5模式时,启用/禁用相对链接的URL重写。如果设置为字符串,URL重写将仅在具有与给定字符串匹配的属性的链接上发生。例如,如果设置为“内部链接”,则URL将仅为链接重写。请注意,属性名称规范化在这里不适用,因此“internalLink”将与“internalLink”不匹配
您必须启用$locationProvider的HTML5模式以避免使用hashBang(#!)
它将迫使ui路由器使用历史api来操作URL,并避免使用hashBang。
就像我解释的那样
如果为布尔值,则将html5Mode.enabled设置为值。如果对象已启用,则设置为启用,并要求将链接重新建立和重写到相应的值。支持的属性:
- enabled–{boolean}–(默认值:false)如果为true,将依赖history.pushState更改受支持的URL。将退回到不支持pushState的浏览器中的哈希前缀路径
- requireBase-{boolean}-(默认值:true)当启用html5Mode时,指定是否需要显示标记。如果enabled和requireBase为true,并且不存在基标记,则在注入$location时将引发错误。有关详细信息,请参阅$location指南
- 重写链接-{boolean | string}-(默认值:true)当启用HTML5模式时,启用/禁用相对链接的URL重写。如果设置为字符串,URL重写将仅在具有与给定字符串匹配的属性的链接上发生。例如,如果设置为“内部链接”,则URL将仅为链接重写。请注意,属性名称规范化在这里不适用,因此“internalLink”将与“internalLink”不匹配
已使用$locationProvider.html5Mode(true),但不起作用。您使用的是angular的哪个版本?您的浏览器是什么(带版本)?(非常)旧浏览器无法使用HTML5模式。已使用$locationProvider.HTML5模式(true),但不工作。您使用的是什么版本的angular?您的浏览器是什么(带版本)?(非常)老的浏览器不能使用HTML5模式。