2016-02-02 2 views
3

Я разработал приложение, и в основном все работает как ожидалось, за исключением того, что у меня есть эти три состояния, где, когда я обновляю страницу, перезагружая URL-адрес, он вызывает завершающую косую черту в конце страницы, заставляя меня в противном случае ('/ 404') запускаться.ui-router добавляет трейлинг-косую черту в конце маршрута, вызывающую 404

Этого больше не происходит на всей платформе. Странная часть заключается в том, что если я изменю URL состояния для одного из состояний с проблемами, проблема будет исправлена.

У трех государственных адресов, имеющих проблемы, есть market, refer-business и invite-friends. Все они являются дочерними элементами оболочки с именем root. Я абсолютно не знаю, что вызывает эту проблему.

Я также понял, что если я возьму $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

звучит как сервер конфигурации выпуска – charlietfl

+0

Любая идея, как отладить это? – Luca

ответ

2

Вы можете найти ответ здесь: Handling trailing slashes in angularUI router

Объясняет Как сказать угловую сделку с задней косой черты, как обычно.

Она также может быть проблема разрешения в файлах шаблонов на стороне сервера

+0

спасибо !! этот url помог! – Luca

+0

Добро пожаловать! –

Смежные вопросы