如何在快速子域上提供反应应用程序?

时间:2017-09-04 12:13:45

标签: node.js express react-router subdomain

我们有一个单页反应应用,我们目前正在公共端点托管,如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-subdomain解决它?恭敬地提前致谢。

1 个答案:

答案 0 :(得分:1)

如果你合并它们,它应该可以工作。

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'))
    })
));