我正在尝试在角度中使用 html5mode,以便我可以为 http:/myhost/products 之类的页面添加书签(其中 /products 是由 $stateProviderRef.state(xxx) 定义的路由)。
为此我已经
- added $locationProvider.html5Mode(true)到我的应用程序配置
- 将 'base href="/"' (带有 )添加到我的 index.html
-
将catch all重写添加到我的node.js中的server.js中
app.get('*', 函数(req, res) {
res.redirect('/');
});
重新启动节点服务器
所以发生的情况是应用程序启动正常,所有导航都正常,我可以转到http://myhost/产品 http://myhost/products一切都运转良好。
但是,如果我此时按刷新,我将被重定向回索引页面。在我看来,好像 ui-router 要么丢失了路径(/products),要么我错过了配置/设置中的某些内容
我一直在 StackOverflow 上浏览问题,直到我的眼睛流血,但所有类似问题的解决方案都是我已经做过的事情(base=、重定向等)
还有其他人遇到这个问题并解决了吗?如果您能分享您的发现,我们将不胜感激。
Thanks
你不应该像那样在服务器中重定向
app.get('*', function(req, res) { res.redirect('/'); });
相反,发送相同的index.html
app.route('/*')
.get(function(req, res) {
res.sendFile(path.resolve(app.get('appPath') + '/index.html'));
});
看看这个生成器了解更多信息
https://github.com/DaftMonk/generator-angular-fullstack/blob/master/app/templates/server/routes.js https://github.com/DaftMonk/generator-angular-fullstack/blob/master/app/templates/server/routes.js
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)