Wie verwende ich AngularJS-Routen mit Express (Node.js), wenn eine neue Seite angefordert wird?
Ich benutze Express, der AngularJS aus einem statischen Verzeichnis lädt. Normalerweise werde ich anfordernhttp://localhost/
, in dem Express dient mir meinindex.html
und alle richtigen Angular-Dateien usw. In meiner Angular-App habe ich diese Routen eingerichtet, die den Inhalt in einer ersetzenng-view
:
$routeProvider.when('/', {
templateUrl: '/partials/main.html',
controller: MainCtrl,
});
$routeProvider.when('/project/:projectId', {
templateUrl: '/partials/project.html',
controller: ProjectCtrl,
});
$locationProvider.html5Mode(true);
Auf meiner Hauptseite habe ich einen Link zu<a href="/project/{{project.id}}">
, der die Vorlage erfolgreich lädt und mich zu weiterleitethttp://localhost/project/3
oder welche ID ich angegeben habe. Das Problem ist, wenn ich versuche, meinen Browser zu leitenhttp://localhost/project/3
Wenn Sie die Seite aktualisieren, wird die Anforderung an den Express / Node-Server gesendet, der sie zurückgibtCannot GET /project/3
.
Wie richte ich meine Express-Routen ein, um dies zu berücksichtigen? Ich vermute, es wird die Verwendung von erfordern$location
in Angular (obwohl ich es vorziehen würde, die hässlichen Suchanfragen und #hashes zu vermeiden, die sie verwenden), aber ich weiß nicht, wie ich die Express-Routen einrichten soll, um damit umzugehen.
Vielen Dank.