angular ui-router,html5模式总是刷新到/
Posted
技术标签:
【中文标题】angular ui-router,html5模式总是刷新到/【英文标题】:angular ui-router, html5 mode always refreshes to / 【发布时间】:2015-06-09 07:07:18 【问题描述】:我正在尝试在 Angular 中使用 html5mode,以便我可以为 http:/myhost/products 之类的页面添加书签(其中 /products 是由 $stateProviderRef.state(xxx) 定义的路由)。
为此我已经
在我的应用配置中添加了 $locationProvider.html5Mode(true) 在我的 index.html 中添加了 'base href="/"'(带有 )在 node.js 中将 catch all rewrite 添加到我的 server.js
app.get('*', function(req, res) res.redirect('/'); );
重启节点服务器
所以应用程序启动正常,所有导航正常,我可以转到http://myhost/products,一切正常。
但是,如果此时我按刷新,我将被重定向回索引页面。在我看来,ui-router 要么丢失了路径(/products),要么我错过了配置/设置中的某些内容
我一直在浏览 *** 上的问题,直到眼睛流血为止,但类似问题的所有解决方案都是我已经做过的事情(base=、重定向等)
其他人有这个问题并解决了吗?如果您能分享您的发现,将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:你不应该这样在服务器中重定向
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
【讨论】:
以上是关于angular ui-router,html5模式总是刷新到/的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS:无法使用 ui-route $state 获取 html5 模式网址
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
Angular 2、TypeScript 和 ui-router - 如何获取状态参数
Angular 1.5,ui-router + 资源 + 组件,stateProvider 找不到组件
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?
ngRoute (angular-route.js) 和 ui-router (angular-ui-router.js) 模块有什么不同呢?