【发布时间】:2015-03-30 11:26:58
【问题描述】:
我正在开发一个 angular/cordova 应用程序,其中在从 Url 中删除 # 并刷新后,页面没有被获取并且我不断收到错误,例如 -
Cannot GET /home/index
如何配置 node.js 服务器为任何不匹配的路由返回 index.html?
【问题讨论】:
标签: node.js cordova cordova-cli
我正在开发一个 angular/cordova 应用程序,其中在从 Url 中删除 # 并刷新后,页面没有被获取并且我不断收到错误,例如 -
Cannot GET /home/index
如何配置 node.js 服务器为任何不匹配的路由返回 index.html?
【问题讨论】:
标签: node.js cordova cordova-cli
express 应该很简单:
app.get('/foo', function (req, res) {
res.render('foo');
});
app.get('/:bar', _checkAuth, function (req, res) {
res.render(req.params.bar);
});
app.get('*', function (req, res) {
res.render('index');
});
【讨论】:
首先,您不必担心可能会修改 URL,因为用户在使用应用程序时无法更改 URL。但是,是的,如果您在任何 anchor 标记上提供了错误的 URL,$urlRouterProvider.otherwise('/') 会为您执行此操作。
myApp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/')
$stateProvider.state('home', {
url: '/',
controller: 'homeCtrl',
})
$stateProvider.state('p1', {
url: '/p1',
templateUrl: "templates/p1.html",
controller: "p1Ctrl"
})
...
})
我可以知道您的 index.html 页面中的内容是什么吗?
【讨论】:
ion-nav-view 中。因此,如果 URL 输入无效,您可以将用户带到其他模板,告诉用户“未找到 404 页面”或其他内容。