如何解决在connect-history-api-fallback和Express中处理尾部斜杠
我正在使用connect-history-api-fallback
处理对React SPA中的React Router处理的route(“ pages”)的调用。它工作得很好,除了以斜杠输入的任何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
,该路由不会加载任何内容),因此这不是问题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);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。