【发布时间】:2012-10-24 16:58:13
【问题描述】:
我正在使用 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 路线以适应这种情况?我猜这将需要在 Angular 中使用 $location (尽管我更愿意避免他们使用的丑陋的 ?searches 和 #hashes),但我对如何设置 Express 路线一无所知处理这个。
谢谢。
【问题讨论】:
-
你能展示一下你目前的快车路线是什么样的吗?
-
目前,我没有,因为 Express 从静态目录提供服务。
app.use(express.static(path.join(__dirname, 'public')));