簡體   English   中英

如何讓 Express 服務器使用 React 路由?

[英]How to make Express server use React routes?

以前我的服務器在端口 5000 上運行,我的 react 應用程序在端口 3000 上運行。我將通過端口 3000 訪問它,它會對端口 5000 進行 API 調用。

我現在添加了這個,以便服務器將為反應構建提供服務: 在此處輸入圖像描述

但我現在遇到的問題是,我在應用程序上的所有路由器都不起作用。 When I go to http://localhost:5000/ my homepage shows up fine, but if I go to http://localhost:5000/1 or whatever, it says it cannot get those pages.

發生的事情是我的路由器在這里啟動並加載正確的組件: 在此處輸入圖像描述

我是 MERN 堆棧的新手,這是我第一次嘗試讓服務器發送構建文件。 我應該搜索什么來解決這個問題? 我怎樣才能解決這個問題? 我的猜測是我必須重寫 app.get 才能發送正確的文件,但我的構建只有一個文件,所以 IDK 該怎么做。 我寧願不必重寫我的整個服務器。

您在這里沒有.htaccessnginx和任何其他 URL 重定向器。 你可以用快遞處理它:

app.get('*', (req,res) =>{
  res.sendFile(path.join(__dirname+'../poll/build/index.html'));
});

在您的特快路線之后。

React route 在瀏覽器上進行路由。 但在這里路由是在服務器端完成的。 無論您請求哪個 url,您都應該始終在反應應用程序中返回 index.html。

如果你想同時使用服務器端路由和瀏覽器路由,你可以在反應中使用 HashRouting

https://reacttraining.com/react-router/web/api/HashRouter

暫無
暫無

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

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