Angularjs 没有散列的默认url
目前,我已经将html5模式转换为我的angular站点中的url 但我只是想知道,我是否可以在没有“#!/”的情况下加载默认url,即域/#!/,我知道当我切换到一条路线时,我会把它拿回来,但最好不要把它放在默认的url主页上 这是我当前的routeproviderAngularjs 没有散列的默认url,angularjs,routes,Angularjs,Routes,目前,我已经将html5模式转换为我的angular站点中的url 但我只是想知道,我是否可以在没有“#!/”的情况下加载默认url,即域/#!/,我知道当我切换到一条路线时,我会把它拿回来,但最好不要把它放在默认的url主页上 这是我当前的routeprovider app.config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider){ 'use strict'; $ro
app.config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider){
'use strict';
$routeProvider
.when('/',{
templateUrl: '/views/search.html',
controller : 'SearchCtrl'
})
.when('/result',{
templateUrl: '/views/result.html',
controller : 'resultCtrl'
})
.when('/options',{
templateUrl: '/views/options.html',
controller : 'optionsCtrl'
})
.otherwise({
redirectTo: '/'
});
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('!');
}]);
Hashbang模式是html5的后备模式,因此
- 使用html5
- 哈克·安格拉斯
- 使主页脱离角度应用
- 在web服务器上重写/转发URL
阅读更多信息。如果您没有使用服务器端语言,请将此代码放在html标题中。
<base href="/">
如果您使用的是服务器端语言,请使用以下代码:
app.get('*', function(req, res) {
res.render('index');
});
代替
app.get('/', function(req, res) {
res.render('index');
});
并将此代码放入配置块:
$locationProvider.html5Mode(true);
$locationProvider.html5Mode(true);
我怀疑你能做的任何事都不会被认为是黑客。前缀是对
ngRoute
进行内部处理的内容。这真的有那么大的问题吗?您的主页url在有或没有它的情况下仍然有效。
$locationProvider.html5Mode(true);