Я использую Express, который загружает AngularJS из статического каталога. Обычно я запрашиваю http://localhost/
, в котором Express обслуживает меня index.html
и все правильные файлы Angular и т.д. В моем приложении Angular у меня есть эти настройки маршрутов, которые заменяют содержимое в ng-view
:
$routeProvider.when('/', {
templateUrl: '/partials/main.html',
controller: MainCtrl,
});
$routeProvider.when('/project/:projectId', {
templateUrl: '/partials/project.html',
controller: ProjectCtrl,
});
$locationProvider.html5Mode(true);
На моей главной странице у меня есть ссылка на <a href="/project/{{project.id}}">
, которая будет успешно загружать шаблон и перенаправлять меня на http://localhost/project/3
или любой другой идентификатор, который я указал. Проблема в том, что когда я пытаюсь направить мой браузер на http://localhost/project/3
или обновить страницу, запрос отправляется на сервер Express/Node, который возвращает Cannot GET /project/3
.
Как мне настроить маршруты Express для этого? Я предполагаю, что это потребует использования $location
в Angular (хотя я бы предпочел избежать уродливых поисков и # хэши, которые они используют), но я не знаю, как начать настройку маршрутов Express, чтобы справиться с этим.
Спасибо.