簡體   English   中英

使用Express處理路線以處理React App?

[英]Handling routes with express for react app?

我有一個React應用運行良好。 我想使用express static部署它。 所以我給了客戶端的build文件夾一個express-static路徑。 “ /”路由工作正常,React路由器從那里開始工作。 但是當我刷新頁面時,express無法發送構建文件,而是給出了錯誤

試圖使用*所有路由到同一React構建文件

app.use(express.static(path.join(__dirname, '../client/', 'build')));

app.get('*', function(req, res) {
    res.sendFile('index.html', function(err) {
        if (err) {
            res.status(500).send(err);
        }
    });
});

與其再次寫下(復制)所有路線,不如想要一個更簡單的解決方案

嘗試以下設置:

app.use(express.static(path.join(__dirname, 'build')));
app.get('*', function (req, res, next) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
const CLIENT_APP_PATH = '../client/build';

app.use(express.static(CLIENT_APP_PATH));

// ...express middlewares, rest, etc...

// in the end of app routing
// serves frontend application
app.get('/*', (req, res) => {
    res.sendFile(path.resolve(`${CLIENT_APP_PATH}/index.html`), { root: __dirname }, err => {
        if (err) {
            res.status(500).send(err);
        }
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM