แอปตอบโต้ของฉันใช้งานได้หากตั้งค่า nginx reverse-proxy ดังนี้:
เซิร์ฟเวอร์ {
ฟัง 80;
ชื่อเซิร์ฟเวอร์ my_public_vps_addr;
ที่ตั้ง / {
proxy_pass http://127.0.0.1:3000/;
}
}
ฉันสามารถโหลดหน้าเว็บได้อย่างถูกต้องที่ http://my_public_vps_addr/
แต่ฉันต้องการเข้าถึงไซต์ผ่าน http://my_public_vps_addr/ecapp/
ดังนั้นฉันจึงกำหนดค่า nginx:
เซิร์ฟเวอร์ {
ฟัง 80;
ชื่อเซิร์ฟเวอร์ my_public_vps_addr;
ตำแหน่ง /ecapp/ {
proxy_pass http://127.0.0.1:3000/;
}
}
ตอนนี้ถ้าฉันโหลดหน้าเว็บที่ http://my_public_vps_addr/ecapp/ และตรวจสอบคอนโซล ฉันจะได้รับ:
รับ http://my_public_vps_addr/static/js/bundle.js
[ไม่พบ HTTP/1.1 404 147ms]
รับ http://my_public_vps_addr/static/js/0.chunk.js
[ไม่พบ HTTP/1.1 404 433ms]
รับ http://my_public_vps_addr/static/js/main.chunk.js
[ไม่พบ HTTP/1.1 404 424ms]
ฉันได้ระบุสาเหตุที่เป็นไปได้ ควรดึงเนื้อหาจาก http://my_public_vps_addr/ecapp/static/js/bundle.js
ฯลฯ แทน http://my_public_vps_addr/static/js/bundle.js
.
เพื่อแก้ไขข้อผิดพลาดนี้ ฉันจะแสดงซอร์สโค้ดที่เกี่ยวข้อง:
server.js
const ด่วน = ต้องการ ('ด่วน');
การบีบอัด const = ต้องการ ('การบีบอัด');
เส้นทาง const = ต้องการ ('เส้นทาง');
แอพ const = ด่วน ();
app.use(บีบอัด());
app.use(express.static(path.join(__dirname, 'build')));
app.get('*', function(req, res) {
res.sendFile (path.join (__dirname, 'build', 'index.html'));
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`แอปทำงานบนพอร์ต ${PORT}`);
});
ฉันพยายามแล้ว app.use('/ecapp/static', express.static(path.join(__dirname, 'build')));
แต่ไม่มีโชค
Routes.js
เส้นทาง const = () => {
กลับ (
<เบราว์เซอร์เราเตอร์>
<สวิตช์>
<Route path="/" ส่วนประกอบที่แน่นอน={Home} />
...
</สวิตซ์>
</เบราว์เซอร์เราเตอร์>
);
};
ฉันพยายามแล้ว <BrowserRouter basename='/ecapp'></BrowserRouter>
แต่ไม่มีโชค
ฉันคิดว่าแอปจะโหลดอย่างถูกต้องที่ http://my_public_vps_addr/ecapp/ หากฉันสามารถกำหนดค่าหน้าเพื่อค้นหาเนื้อหาที่ http://my_public_vps_addr/ecapp/static/*
. ฉันต้องการความช่วยเหลือในการทำสิ่งนี้