Jak korzystać z tras AngularJS przy użyciu Express (Node.js), gdy wymagana jest nowa strona?
Używam Expressa, który ładuje AngularJS z katalogu statycznego. Zwykle zażądamhttp://localhost/
, w którym Express służy mi moimindex.html
i wszystkie poprawne pliki Angulara itp. W mojej aplikacji Angular mam te konfiguracje tras, które zastępują zawartość wng-view
:
$routeProvider.when('/', {
templateUrl: '/partials/main.html',
controller: MainCtrl,
});
$routeProvider.when('/project/:projectId', {
templateUrl: '/partials/project.html',
controller: ProjectCtrl,
});
$locationProvider.html5Mode(true);
Na mojej stronie głównej mam link do<a href="/project/{{project.id}}">
, który pomyślnie załaduje szablon i skieruje mnie dohttp://localhost/project/3
lub jakikolwiek inny identyfikator, który podałem. Problem polega na tym, że próbuję skierować moją przeglądarkę nahttp://localhost/project/3
lub odśwież stronę, żądanie przechodzi do serwera Express / Node, który zwracaCannot GET /project/3
.
Jak skonfigurować moje trasy ekspresowe, aby dostosować się do tego? Zgaduję, że będzie to wymagało użycia$location
w Angular (chociaż wolałbym unikać brzydkich wyszukiwań i #hashów, których używają), ale nie mam pojęcia o tym, jak skonfigurować trasy Express, aby sobie z tym poradzić.
Dzięki.