刷新一条以上的路线' /'在Angular

时间:2016-05-03 08:54:58

标签: javascript angularjs url express routing

/home/profile甚至/等路线在按下浏览器刷新按钮时效果很好,因为这样,服务器会发送默认的.html和角度文件(因为下面的服务器代码),然后这些角度文件处理当前的URL。

当我在具有多个/的路由上刷新时出现问题(这在使用路由参数时是必需的),例如/manage/users/user/12345678等等

然后,jQuery抛出这个奇怪的错误Uncaught SyntaxError: Unexpected token <,然后Bootstrap开始抱怨没有获得jQuery,并且页面看起来很糟糕而没有化妆......等等。

要明确的是,当我访问具有多个/的路由时,使用Angular自己的路由器(使用$state.go('/manage/users')<ui-sref='profile'>等),这个问题(显然)没有发生,因为Angular已经被加载来处理该URL。

但是当我刷新页面时,由于没有Angular来处理该路由,浏览器会向服务器询问路由,显然,Express中的/*也无法处理此路由。

我通过以下方式从我的服务器提供.html文件:

app.all('/*', function(req, res, next) {
    // Just send the index.html for other files to support HTML5Mode
    res.render('index.html');
});

处理完所有API路径后。 index.html(希望)之后会加载所有的角度文件。

是否有类似的东西:

app.all('**/*', function(req, res, next) { ... });

...在任何路线上呈现html,任意数量的/ s?或者某种正则表达式可能吗?

TIA

1 个答案:

答案 0 :(得分:1)

您必须在&#34; head&#34;

中设置基数
<head>
  <base href="/">
  ...
</head>