Express防止在SPA中重定向

时间:2017-03-15 21:46:40

标签: angularjs node.js express redirect

我有以下路线配置:

const app = express();

app.use('/site', express.static(path.join(__dirname, '../../site/static')));
app.use('/site*', express.static(path.join(__dirname, '../../site/static')));

现在,当我访问应用http://localhost:8080/site/bla?asdad时,我被重定向到http://localhost:8080/site/bla/?asdad(请注意问号前添加的斜线)。

应用程序使用angular(1)编写,它会使路由器(ui-router)转到默认路由器。

在应用程序中导航(单击指向不同状态的链接)时,一切正常,但刷新时会添加斜杠并重定向到默认路径。

我尝试将{redirect: false}添加到静态middelware选项,但它导致此网址http://localhost:8080/site/bla/?asdad返回:

Cannot GET /site/bla

我该怎么做才能让它发挥作用。

1 个答案:

答案 0 :(得分:0)

这就是我的工作方式:

app.use('/site', express.static(path.join(__dirname, '../../site/static')));

app.use('/site*', (req, res) => {
  res.sendfile(path.join(__dirname, '../../site/static/index.html');
});