子目录上的nodejs配置

时间:2019-01-19 09:44:08

标签: javascript node.js

我有一个子域,我在此目录上发布了server.js。一切正常。但是我想在目录中运行server.js(因为我想在子目录中运行react.js项目)。例如:

web.example.com/sr

web是我的子域,sr是我的目录。

但是我的路线根本不起作用

web.example.com/sr/user/1

我收到此错误消息:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Error</title>
    </head>
    <body>
        <pre>Cannot POST /sr/user/1</pre>
    </body>
</html>

我应该进行任何更改还是要进行任何配置?

1 个答案:

答案 0 :(得分:0)

您无法执行部署级配置来将您的react应用服务提供给子目录/sr。对your.domain.com/sr/*的每次调用都将在您的服务器中结束,并将/sr/*传递给服务器(而不仅仅是/*

您必须对服务器进行编码才能提供React应用程序。如果将React应用捆绑到index.htmlbundle.js,则必须编写类似的代码(如果您使用的是Express,则可能这样做):

app.get(/\/sr\/\.js/, (req, res) => res.sendFile(`${__dirname}/bundle.js`));
app.get(/\/sr\/*/, (req, res) => res.sendFile(`${__dirname}/index.html`));

如果您使用的是react-router,则也必须对其进行设置,以考虑到URL中前导/sr