Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在express子域上提供react应用程序?_Node.js_Express_React Router_Subdomain - Fatal编程技术网

Node.js 如何在express子域上提供react应用程序?

Node.js 如何在express子域上提供react应用程序?,node.js,express,react-router,subdomain,Node.js,Express,React Router,Subdomain,我们有一个单页React应用程序,我们目前正在一个公共端点内托管,如awesomewebsite.com/App。它最初确实可以工作,但如果刷新,服务器将重定向到404页面。我们通过在主路由器下加入一个通配符路由来解决这个问题。我们现在想把整个东西带到一个子领域,但在那里应用同样的技巧似乎并没有成功 当在公共场所服务时,这一个有效 app.use(express.static(path.join(__dirname, 'public'))); app.use('/webapp/*',fu

我们有一个单页React应用程序,我们目前正在一个公共端点内托管,如awesomewebsite.com/App。它最初确实可以工作,但如果刷新,服务器将重定向到404页面。我们通过在主路由器下加入一个通配符路由来解决这个问题。我们现在想把整个东西带到一个子领域,但在那里应用同样的技巧似乎并没有成功

当在公共场所服务时,这一个有效

  app.use(express.static(path.join(__dirname, 'public')));
  app.use('/webapp/*',function(req,res){
    res.sendFile(path.join(__dirname,'public/webapp/index.html'))
})
但是这个没有

app.use(subdomain('app', express.static(path.join(__dirname, 'reactApp'))));
app.use(subdomain('app', express.Router().use('/*',function(req,res){
    res.sendFile(path.join(__dirname,'reactApp/index.html'))
})));

有人知道为什么会发生这种情况,以及我们如何使用express子域来解决它吗?尊敬的您,请提前感谢。

如果您将它们合并,它应该会起作用

app.use(subdomain('app', express.Router()
    .use(express.static(path.join(__dirname, 'reactApp')))
    .use('/',function(req,res){
         res.sendFile(path.join(__dirname, 'reactApp/index.html'))
        //res.sendFile(path.join(__dirname,'public/webappbeta/index.html'))
    })
));