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

标签 angularjs apache angular-ui-router

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

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

有问题的三个状态 url 是 marketrefer-businessinvite-friends。这些都是名为 root 的 shell View 的 subview 。我完全不知道是什么导致了这个问题。

我还意识到,如果我将 $urlRouterProvider.otherwise('/404'); 从我的主要模块配置中移除,问题也会消失。

这里有两条行不通的路线。

市场.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'
      }
    });
  }

refer-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 天我一直在研究这个问题,但一无所获。希望这里有人遇到过这个问题,或者有一些关于如何进一步调试它的提示。

最佳答案

您可能会在这里找到答案:Handling trailing slashes in angularUI router

解释了如何像往常一样用尾部斜线来判断 Angular 处理。

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

关于angularjs - ui-router 在路由末尾添加尾部斜杠导致 404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35161990/

相关文章:

AngularJS在路由之间传递范围

eclipse - Apache Tomcat 8.0 无法加载使用 Eclipse for Java EE、Mars 2 用 Kotlin 编写的 servlet 类

javascript - 如何从 URL 获取状态变量值

javascript - AngularJS 模块 'ui.router' 不适用于我的 Djangular 项目

AngularJS - 动态 $StateProvider

javascript - Angularjs - Controller 和 View 之间的绑定(bind)

angularjs - ng-animate 在 1.3 中不起作用

javascript - Angular js - 显示/隐藏每个新路线的加载 gif

php - 我已经将 php-mysql-apache 设置为在 latin1 上工作但是在进行备份时我的字符集客户端仍然是 utf8

python - 服务器上的 django 应用程序 : apache runs with python 2. 7 而不是 python 3.5