【发布时间】:2020-10-13 13:59:58
【问题描述】:
我正在使用connect-history-api-fallback 处理对 React SPA 中 React Router 处理的路由(“页面”)的调用。它工作得很好,除了任何带有斜杠输入的 React Router“页面”都会失败。
https://my.app/signup - 有效。
https://my.app/signup/ - 失败。
通常,Express 将处理尾部斜杠,并在没有它的情况下提供网址(因此,您输入 https://my.app/signup/,Express 为您提供 https://my.app/signup)。这是在同一个应用程序中不使用历史连接中间件的其他路由的行为,这也是我想要的行为。
我唯一能想到的就是通过重写来处理尾部斜杠:
import history from 'connect-api-history-fallback';
// ...setup
app.use(
history({
rewrites: [
{from: /\/signup\//, to:'/signup'}
]
}),
express.static(path.join(dirname, 'some/directory'))
);
但是,这失败了。
而且它甚至不能进入我的 React 应用程序(不像只是调用一个不存在的路由,比如 https://my.app/fakeroute,它会加载没有内容的应用程序),所以这不是内部路由的问题反应。
有人知道正确的方法吗?作为一个流行的模块,我无法想象它不能处理斜杠。
【问题讨论】:
标签: express react-router single-page-application