ฉันกำลังพยายามรับการเรนเดอร์แอปจากเซิร์ฟเวอร์ ดังนั้นจึงพยายามใช้ตัวอย่าง ServerRendering จากที่นี่: http://redux.js.org/docs/recipes/ServerRendering.html
ฉันสามารถรัน server.js ได้สำเร็จ แต่ได้รับข้อผิดพลาด "Uncaught SyntaxError: Unexpected token ‹" @ Bundle.js:2 เมื่อฉันโหลด localhost ฉันเชื่อว่ามันเกี่ยวข้องกับฟังก์ชัน renderFullPage():
function renderFullPage(html, initialState) {
return `
<!doctype html>
<html>
<head>
<title>Redux Universal Example</title>
</head>
<body>
<div id="root">${html}</div>
<script>
window.__INITIAL_STATE__ = ${JSON.stringify(initialState)}
</script>
<script src="/dist/bundle.js"></script>
</body>
</html>
`
}
ถ้าฉันลบบรรทัด <script src="/dist/bundle.js"></script>
ข้อผิดพลาดจะหายไป แต่ตัวนับไม่ทำงาน
นี่คือ Bundle.js ที่ข้อผิดพลาดอ้างอิงถึง:
มันควรจะอ้างอิงถึง Bundle.js ในโฟลเดอร์ dist ของฉัน แต่ไม่ใช่ด้วยเหตุผลบางอย่างใช่ไหม หากฉันสร้างไฟล์ index.html เหมือนกับไฟล์ที่ renderFullPage ส่งคืนทุกประการ ยกเว้นการลบ ${html}
และ <script>
window.__INITIAL_STATE__ = ${JSON.stringify(initialState)}
</script>
จากนั้นตัวนับก็ทำงานได้ดี เมื่อฉันทำการเรนเดอร์ฝั่งเซิร์ฟเวอร์ ดูเหมือนว่าไคลเอนต์จะไม่พบโค้ด Bundle.js ดังนั้นให้สร้างโค้ดที่มีโค้ดเดียวกันกับที่ได้รับจากเซิร์ฟเวอร์ทุกประการ และเกิดข้อผิดพลาดขณะรันเป็น html เมื่อ มันคาดหวังจาวาสคริปต์
I can successfully run server.js
ฉันไม่เห็นด้วย คุณอาจสามารถฟังพอร์ตได้ แต่เมื่อคุณมีส่วนร่วมกับ server.js สำหรับคำขอ มันก็จะพังทลายลง คุณกำลังเขียน ES6 หรือ ES5 หรือไม่? - person lux   schedule 30.03.2016