/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
答案 0 :(得分:1)
您必须在&#34; head&#34;
中设置基数<head>
<base href="/">
...
</head>