我有一個Web應用程序。後端與節點和前端與React。設置(簡體)是這樣的:使用反應應用程序中的路由問題
index.js (the server)
client
package.json
客戶
現在,client
文件夾包含前端Web應用程序,其內容爲,當你鍵入創建反應的,你得到了什麼基本相同-app。
Inside client
有一個build
文件夾,我通過在client
文件夾中運行npm run build
創建。
服務器
現在,index.js
從我的主文件夾作爲節點服務器,裏面我有這樣一句臺詞:
app.use(express.static(__dirname + "/client/build"));
使用這種方法我已經合併我的節點服務器和客戶端前端應用程序(位於客戶端文件夾內)。你可以看到我告訴服務器服務於client/build
的文件。
一切工作正常,直到我遇到了這個。
如果我在客戶端應用程序,它使用手動說我叫路由器點擊一個按鈕反應:
this.props.router.push('/listmovies');
它正確顯示頁面。
但如果我輸入URL地址欄相同的頁面,按Enter鍵,我得到錯誤:
Cannot GET /listmovies
後者的錯誤,我敢肯定來自節點服務器。因爲index.js
中沒有listmovies
的收聽者(並且不應該有)。你基本上看到我認爲節點正在攔截呼叫並給我一個錯誤。而在我以前撥打router.push
的情況下,我得到了一個正確的頁面。
我希望我能夠解釋我的問題。有人可以幫助解決這個問題嗎?
你可以添加你的'index.js'配置嗎?它看起來像你缺少的東西 – QoP
@QoP這是索引文件:https://github.com/giorgim/MovieManagementApp/blob/master/index.js,不關注其他文件,就像我在我的說項目我反應,而不是像在該github項目中的香草JS。但是index.js是相同的(只是在不同的路徑上)。 –
@QoP正如我在我的問題中所述,反應應用程序包含在「客戶」文件夾中。它是使用create-react-app starter創建的。 –