ปัญหารากฐานที่สุดของเว็บคือเป็น SPA แบบ client-rendered ล้วน — แก้ด้วยการ prerender ทุกหน้า
- ติดตั้ง
vite-ssg@0.24.3(ปักเวอร์ชันไว้เพื่อไม่ให้ meta หายเงียบ ๆ จากปัญหา dependency) - Prerender ทุก route เป็น HTML จริงตอน build — 9 หน้า static +
/project/:slug+/blogs/:slugรวม 93 หน้า - ดึง slug แบบ dynamic จาก API ตอน build; ถ้า API ล่ม = ข้าม dynamic + เตือน แต่ build ไม่พัง
- ทำโค้ดให้ SSR-safe: guard
localStorage/document, ย้ายwindow.addEventListenerเข้าonMounted - ส่ง state ผ่าน
provide/inject+__INITIAL_STATE__→ hydrate ไม่กระพริบ .htaccessเสิร์ฟไฟล์ prerender ตรง canonical URL (ไม่ 301 trailing-slash)
ผลลัพธ์: LINE / Facebook / AI ที่ไม่รัน JavaScript เห็น title, meta, JSON-LD และเนื้อหาครบในชุด HTML แรก — ปลดล็อกทั้ง SEO และโอกาสถูกอ้างอิงโดย AI