Angularjs 没有散列的默认url

Angularjs 没有散列的默认url,angularjs,routes,Angularjs,Routes,目前,我已经将html5模式转换为我的angular站点中的url 但我只是想知道,我是否可以在没有“#!/”的情况下加载默认url,即域/#!/,我知道当我切换到一条路线时,我会把它拿回来,但最好不要把它放在默认的url主页上 这是我当前的routeprovider app.config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider){ 'use strict'; $ro

目前,我已经将html5模式转换为我的angular站点中的url

但我只是想知道,我是否可以在没有“#!/”的情况下加载默认url,即域/#!/,我知道当我切换到一条路线时,我会把它拿回来,但最好不要把它放在默认的url主页上

这是我当前的routeprovider

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);