我正在使用 connect-history-api-fallback
来处理对 React SPA 中由 React Router 处理的路由(“页面”)的调用。它工作得很好,除了任何以尾部斜杠输入的 React Router“页面”都会失败。
https://my.app/signup
- 有效。
https://my.app/signup/
- 失败。
通常情况下,Express 会处理尾部的斜线并只提供没有它的 url(因此,您输入 https://my.app/signup/
,Express 会为您提供 https://my.app/signup
)。这是在同一个应用程序中不使用 history-connect 中间件的其他路由的行为,也是我在这里想要的行为。
我唯一能想到的就是通过重写来处理结尾的斜线:
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
,它加载应用程序没有内容),所以这不是 React 中的路由问题。
有谁知道正确的方法吗?作为一个流行的模块,我无法想象它不能处理尾部斜杠。
最佳答案
请确保您运行的是最新版本的 connect-history-api-fallback
。我刚刚对其进行了测试,它与 /signup
和 /signup/
const express = require('express');
const history = require('connect-history-api-fallback');
const app = express();
app.use(
history({
rewrites: [
{ from: /\/signup/, to: '/signup'}
]
})
)
app.get('/signup', function(req, res) {
res.send("signup");
})
app.listen(8080);
关于express - 处理 connect-history-api-fallback 和 Express 中的尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64336691/