Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript重定向到错误的URL_Javascript_Angularjs_Ngroute - Fatal编程技术网

Javascript重定向到错误的URL

Javascript重定向到错误的URL,javascript,angularjs,ngroute,Javascript,Angularjs,Ngroute,我正在使用angularjs,我有一个非常基本的应用程序 let app = angular.module('GHoF', [ 'ngRoute' ]); app.config(function Config($routeProvider) { // Routes console.log($routeProvider); $routeProvider .when('/applications', { templateUrl: 'app/pages/myA

我正在使用angularjs,我有一个非常基本的应用程序

let app = angular.module('GHoF', [
  'ngRoute'
]);

app.config(function Config($routeProvider) {

  // Routes

  console.log($routeProvider);
  $routeProvider
    .when('/applications', {
      templateUrl: 'app/pages/myApplications/myApplications.html',
      controller: 'MyApplicationsCtrl'
    })
    .otherwise({
      redirectTo: 'app/pages/auth.html'
     })

});
HTML

问题是它将我重定向到错误的URL


我不知道为什么,但似乎是
/#在URL中。这是一个非常基本的应用程序…

您需要启用
HTML5Mode
以摆脱hashbang。首先,您需要在索引文件中添加base href(我通常将其直接放在开头的
标记下):

let app = angular.module('GHoF', [
  'ngRoute'
]);

app.config(function Config($routeProvider) {

  // Routes

  console.log($routeProvider);
  $routeProvider
    .when('/applications', {
      templateUrl: 'app/pages/myApplications/myApplications.html',
      controller: 'MyApplicationsCtrl'
    })
    .otherwise({
      redirectTo: 'app/pages/auth.html'
     })

});

不要忘记,如果您计划在HTML5模式下直接使用这些路由,您将需要处理服务器重写


这是一个很好的资源,可以提供有关如何为不同服务器执行此操作的信息:

因为您已将其设置为使用HashBang,这是什么意思?我没有配置任何其他东西除了我有它的工作。。。谢谢..它可以工作,但现在没有重定向…我认为
重定向到:'app/pages/auth.html'
需要一个前导斜杠从根重定向。请尝试
重定向到:'/app/pages/auth.html'
甚至
重定向到:'/pages/auth.html'
如果/app已经是您的根目录,则不会重定向。。。我去
http://127.0.0.1:8080/applications
并表示
无法获取/applications
如果您要直接访问该URL,则需要向服务器添加重写。请参阅:@user12361681I使用更好的链接更新了我的答案,以防您不使用apache
<base href="/">
app.config(function Config($routeProvider, $locationProvider) {
  $locationProvider.html5Mode(true);
  $routeProvider
    .when('/applications', {
      templateUrl: '/app/pages/myApplications/myApplications.html',
      controller: 'MyApplicationsCtrl'
    })
    .otherwise({
      redirectTo: '/app/pages/auth.html'
    })
});