微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在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 举报,一经查实,本站将立刻删除。