angular ui-router,html5模式总是刷新到/

时间:2015-04-04 09:47:06

标签: angularjs node.js express angular-ui-router

我试图在角度使用html5mode,这样我就可以为http:/ myhost / products(其中/ products是由$ stateProviderRef.state(xxx)定义的路由)添加书签。

为此,我已经

  • $ locationProvider.html5Mode(true) 添加到我的应用配置
  • 将'base href =“/”'(使用<>)添加到我的index.html
  • 将catch all重写添加到node.js中的server.js

    app.get('*',function(req,res){  res.redirect( '/'); });

  • 重新启动节点服务器

所以会发生什么是应用程序启动正常,所有导航工作,我可以转到http://myhost/products,一切正常。

但是,如果我此时按下刷新,我将被重定向回索引页面。看起来好像ui-router正在丢失路径(/产品)或者我在配置/设置中遗漏了一些东西

我一直在浏览StackOverflow上的问题,直到我的眼睛流血,但所有类似问题的解决方案都是我已经完成的事情(base =,redirect等)

其他人有这个问题并解决了吗?如果您能分享您的发现,将不胜感激。

由于

1 个答案:

答案 0 :(得分: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