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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage