我有一个子域,我在此目录上发布了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>
我应该进行任何更改还是要进行任何配置?
答案 0 :(得分:0)
您无法执行部署级配置来将您的react应用服务提供给子目录/sr
。对your.domain.com/sr/*
的每次调用都将在您的服务器中结束,并将/sr/*
传递给服务器(而不仅仅是/*
。
您必须对服务器进行编码才能提供React应用程序。如果将React应用捆绑到index.html
和bundle.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
。