在connect history api fallback和Express中处理尾部斜杠

在connect history api fallback和Express中处理尾部斜杠,express,react-router,single-page-application,Express,React Router,Single Page Application,我正在使用connecthistoryapi fallback处理对React SPA中React路由器处理的路由(“页面”)的调用。它工作得很好,只是任何用尾随斜杠输入的“页面”都会失败 https://my.app/signup-工作正常。 https://my.app/signup/-失败 通常,Express将处理一个尾随斜杠,只提供url而不提供斜杠(因此,输入https://my.app/signup/,Express为您提供https://my.app/signup)。这是其他路由

我正在使用
connecthistoryapi fallback
处理对React SPA中React路由器处理的路由(“页面”)的调用。它工作得很好,只是任何用尾随斜杠输入的“页面”都会失败

https://my.app/signup
-工作正常。
https://my.app/signup/
-失败

通常,Express将处理一个尾随斜杠,只提供url而不提供斜杠(因此,输入
https://my.app/signup/
,Express为您提供
https://my.app/signup
)。这是其他路由在同一应用程序中不使用history connect中间件的行为,也是我在这里想要的行为

我唯一能想到的就是通过重写来处理尾部斜杠:

从“连接api历史回退”导入历史;
//…设置
应用程序使用(
历史({
重写:[
{from://\/signup\//,to:'/signup'}
]
}),
static(path.join(dirname,'some/directory'))
);
然而,这是失败的

而且它甚至不能进入我的React应用程序(不像只调用不存在的路由,比如
https://my.app/fakeroute
,加载应用程序时不包含任何内容),因此这不是React中的路由问题


有人知道正确的方法吗?作为一个流行的模块,我无法想象它不能处理后面的斜杠。

请确保您正在运行最新版本的
连接历史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);

谢谢你的回答,@MattB!在我的应用程序中,
/signup
实际上是一个反应路由器路由;因此,没有一条与之对应的快速路线。
connect history api fallback
成功地处理到这些的导航;除非后面有斜杠。所以我认为这个解决方案不适用。