我正在使用 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
或我指定的任何 ID。问题是当我尝试将浏览器定向到http://localhost/project/3
或刷新页面时,请求将发送到 Express/Node 服务器,该服务器返回Cannot GET /project/3
.
如何设置我的 Express 路线以适应这种情况?我猜它需要$location
在 Angular 中使用(尽管我更愿意避免他们使用的丑陋的 ?searches 和 #hashes),但我对如何设置 Express 路由来处理这个问题一无所知。
谢谢。