问题描述
例如:
http://localhost/#!/login.html
我不需要!".我将如何删除它?
I don't need "!". How would I remove it?
eg:http://localhost/#/login.html
这是我的路由器代码:
// Redirect any unmatched url
$urlRouterProvider.otherwise("/login.html");
$stateProvider.state('login', {
url: "/login.html",
templateUrl: "views/login.html",
data: {pageTitle: "login", isLeft: false},
controller: "LoginCtrl",
resolve: {
deps: ['$ocLazyLoad', function ($ocLazyLoad) {
return $ocLazyLoad.load({
name: 'myApp',
files: [
'controllers/LoginCtrl.js'
]
});
}]
}
});
我认为 Angular-ui-router 可能有问题,但我找不到解决方案.
I think Angular-ui-router might have a problem, but I can't find the solution.
谢谢!
推荐答案
Hashbang Mode
Hashbang 模式是 AngularJS 用来为你的 Angular 提供深层链接功能的一个技巧应用.在 hashbang 模式(html5 模式的后备模式)中,URL 路径采用前置 # 字符.它们不重写标签,也不需要任何服务器端支持.哈希邦mode 是 AngularJS 使用的默认模式,除非另有说明.hashbang URL 如下所示:
Hashbang mode is a trick that AngularJS uses to provide deep-linking capabilities to your Angularapps. In hashbang mode (the fallback for html5 mode), URL paths take a prepended # character.They do not rewrite tags and do not require any server-side support. Hashbangmode is the default mode that AngularJS uses if it’s not told otherwise.A hashbang URL looks like:
http://yoursite.com/#!/inbox/all
要显式配置hashbang模式,需要在配置函数中配置应用模块
To be explicit and configure hashbang mode, it needs to be configured in the config function on anapp module
我们还可以配置 hashPrefix,在 hashbang 模式下,它是!字首.这个前缀是 Angular 的回退机制的一部分用于旧版浏览器.我们也可以配置这个字符.
配置 hashPrefix:
angular.module('myApp', ['ngRoute'])
.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');
}]);
这篇关于我正在使用 angular,我的 url 总是有一个“!"(感叹号)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!