ui-router在路由末尾添加尾部斜杠,导致404

时间:2016-02-02 19:16:12

标签: angularjs apache angular-ui-router

我已经构建了一个应用程序,并且大部分内容都按预期工作,除了我有这三种状态,当我通过重新加载url刷新页面时,它会导致页面末尾的斜杠导致我的其他情况( ' / 404')触发。

整个平台上没有其他任何地方发生这种情况。奇怪的是,如果我更改其中一个状态的状态URL有问题,问题就解决了。

有问题的三个州网址是marketrefer-businessinvite-friends。这些都是名为root的shell视图的子项。我完全不知道造成这个问题的原因。

我也意识到,如果我从主模块配置中取出$urlRouterProvider.otherwise('/404');,问题就会消失。

以下是两条不起作用的路线。

market.routes.js

  function marketRoutes($stateProvider) {
    $stateProvider.state('market', {
      parent: 'root',
      url: '/market?category', // If I change this to /blahblah, it works perfects
      views: {
        "@root": {
          templateUrl: '/market/market.html',
          controller: 'MarketController',
          controllerAs: 'MarketCtrl'
        }
      },
      resolve: {
        Categories: ['MarketService', function (MarketService) {
          return MarketService.getCategories();
        }],
        Products: ['MarketService', '$stateParams', function (MarketService, $stateParams) {
          // By default the market should open on `deals of the moment` category
          return MarketService.getProducts(0, 9, 1, $stateParams.category || 4);
        }]
      },
      data: {
        title: 'Market'
      }
    });
  }

参阅-business.routes.js

  function ReferBusinessRoutes($stateProvider) {

    $stateProvider.state('refer-business', {
      parent: 'root',
      url: "/refer",
      templateUrl: "/refer-business/refer-business.html",
      controller: "ReferBusinessController",
      controllerAs: "rbCtrl",
      onEnter: function () {
        this.data.title = "Refer a business";
      },
      data: {
        title: 'Refer a business'
      },
      authenticate: true
    });
  }

我已经花了最近3天的时间,而且我什么都没有。希望有人在这里遇到过这个问题,或者有一些关于如何进一步调试它的技巧。

1 个答案:

答案 0 :(得分:2)

您可以在此处找到答案:Handling trailing slashes in angularUI router

解释如何像往常一样告诉角度处理尾部斜杠。

服务器端的模板文件中也可能存在权限问题