0

我有一个使用 http-proxy-middleware 设置的快速应用程序,但我在通过代理仅路由请求的子集时遇到问题。

这是我的配置的样子:

app.use(/\/.*-img/i, proxy({changeOrigin: true, logLevel: 'debug', target: 'http://ucassets.blob.core.windows.net'}));

app.get('*', (req, res) => {
    const location = req.url;
    const memoryHistory = createMemoryHistory(req.originalUrl);
    const store = configureStore(memoryHistory);
    const history = syncHistoryWithStore(memoryHistory, store);

    match({history, routes, location},
        (error, redirectLocation, renderProps) => {
            if (error) {
                res.status(500).send(error.message);
            } else if (redirectLocation) {
                res.redirect(302, redirectLocation.pathname + redirectLocation.search);
            } else if (renderProps) {
                /* render HTML and send code 200 */
            } else {
                res.status(404).send('Not Found?');
            }
        });
});

代理路由有时会起作用,有时会打印“未找到?” 404 结果。值得注意的是,我的 react-router 配置中没有与上面的代理路由匹配的路由。由于两条路线在技术上都与 express 路线相匹配,我猜 express 是随机选择执行哪一个?

编辑:这是一个有问题的示例路线:

/user-img/bc070850-11c9-a79e-2881-9bd6cc04c3ca.jpg

4

0 回答 0