2015-07-20 4 views
2

У меня есть функция поиска в моем приложении «Угловое», которое при выполнении ударяет по моему API для получения результатов, затем перенаправляет пользователя с помощью $location.url. Все отлично работает ... пока я не попытаюсь перезагрузить страницу результатов. Когда я это сделаю, я получаю сообщение Cannot GET /search/[search-term].Угловой маршрут «Не могу GET» на странице обновления

app.config.js:

'use strict'; 

angular.module('gameApp') 
    .config(function($routeProvider, $locationProvider) { 
    $routeProvider 

    .when('/player/:playerId', { 
     templateUrl: 'player.html' 
    }) 
    .when('/search/:searchTerm', { 
     templateUrl: '/app/gmSearchResults/gmSearchResults.html' 
    }); 

    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false, 
     rewriteLinks: false 
    }); 
    }); 

соответствующего navbar.controller.js:

vm.getSearchResults = function(searchTerm) { 
    searchService.resource.getResults({ 
    query: searchTerm 
    }).$promise.then(function(results) { 
    if (results.playerId) { 
     $location.url('/customer/' + results.playerId); 
    } else { 
     saveLatest(results); 
     $location.url('/search/' + searchTerm); 
    } 
    }); 
}; 
+0

Вы уверены, что ответчик сервера index.html при попытке загрузить определенную страницу? Попробуйте отключить режим html5 и проверьте его. –

ответ

6

Настройки вашего экспресс-приложение:

app.route('/*').get(function(req, res) { 
    return res.sendFile(path.join(config.root, 'index.html')); 
}); 
+1

У меня ошибка, говорящая, что config не определен. Любая помощь? –

0

Просто небольшой редактировать Георгию Кац ответ. Попытайтесь использовать:

app.get('/*', function (req, res, next) { 
     if (/.js|.html|.css|templates|js|scripts/.test(req.path) || req.xhr) { 
     return next({ status: 404, message: 'Not Found' }); 
     } else { 
      return res.render('index'); 
     } 
    }); 
Смежные вопросы