當我在索引路由(/
)和登錄頁面(/login
)上刷新頁面時,它工作正常。刷新後無法獲得正確的靜態文件,除了索引頁面
但是,我的網站在我刷新其他路線時出錯,例如/user/123456
。
因爲不管請求是什麼,瀏覽器總是獲取HTML文件。
因此,main.css
和main.js
中的內容都是HTML和瀏覽器錯誤。
我已經讀創建反應的應用程序內的自述。
無論我使用serve包($serve -s build -p 80
)還是快遞,都會產生奇怪的bug。
以下是我的服務器代碼:
//server.js
const express = require('express');
const path = require('path');
app.use(express.static(path.join(__dirname, 'build')));
app.get('/*', (req, res) => {
res.sendFile(path.join(__dirname, 'build', 'index.html'));
});
const PORT = process.env.PORT || 80;
app.listen(PORT,() => {
console.log(`Production Express server running at localhost:${PORT}`);
});
編輯:我想通了其中引發的問題。
我創建了一個新項目,並將其與我的項目進行了比較。新項目中的靜態文件的路徑爲絕對,但在我的項目中是相對。
因此,我在package.json
中刪除"homepage": "."
。
//package.json
{ ....
dependencies:{....},
....,
- "homepage": "."
}
現在一切都按預期工作。我怎麼不小心......
這將是有益的,看到你的webpack配置和index.html –
@ promisified謝謝你的迴應。我使用create-react-app來開發和構建。我應該拒絕嗎? – SHZhao74
您是否試圖提供構建腳本創建的靜態文件?如果沒有,我不確定爲什麼你需要快遞服務文件,因爲創建反應應用程序在開發中使用webpack dev服務器? –