Angular html5模式下深度路由的回退不起作用

angular html5 mode fallback for deep routes not working

本文关键字:回退 不起作用 路由 深度 html5 模式 Angular      更新时间:2023-09-26

我已经用node.js在angular中设置了html5模式,但是对于不支持html5模式的浏览器,回退到哈希不能为超过1级的路由工作。

服务器路由:

app.all('/*', function(req, res) {
    console.log('serve');
    res.sendFile(__dirname+'/public/index.html');
});

我在开始的头部标签后面包含了一个基本标签。

<base href="/">

现在当我访问像'localhost/news'这样的url

对于支持的浏览器,网站在相同的url加载,服务器被击中一次,记录'serve',对于不支持的浏览器,它将url更改为localhost/#/news,这很好。

现在,对于像localhost/news/post1这样的url,支持的浏览器再次工作正常,但不支持的浏览器加载index.html文件,没有样式或JS,服务器被多次击中,日志服务超过50次,url没有修改,页面仍然损坏。

我正在测试的浏览器是IE9,有人知道这个解决方案吗?

您是否尝试过在节点服务器中使用express静态设置路由?对于你的路由,在server.js中,它看起来像这样:

app.use('/news', express.static(__dirname + '/public'));