在進行網站頁面重構時,若後端伺服器已具備特定的路由映射規則,Nuxt 內建的 Clean URL 機制往往會與之產生難以調和的衝突。在這種『環境決定網址』的特殊情境下,強行修改框架配置往往事倍功半。若採 Vite-ssg 作為替代方案,利用其高度靈活的自定義路由特性來製作靜態頁面,從根本上解決前端路由與後端映射資料夾之間的設計矛盾。
內容
情境描述
伺服器端有為了對接舊系統或特定 API,網址必須是 <domain>/client-a/client-a.html,但實體路徑是在伺服器的 /user/ 下。
Nuxt 的設計
當你試圖在路徑裡加上 .html 時,它的路由器(Vue Router)會不斷嘗試「修正」它。縱使你在 nuxt 設定檔設置相關參數,於該頁面載入後由 JavaScript 接管進行 Hydration 時,vue-router 會察覺其內部定義的 path 和 window.location.origin 不同,又會觸發自動修正。同時也無法解決重新整理 window.location.reload() 時,會執行的是內部定義的 path 而非 window.location.origin 的難題。
簡言之,你是在「對抗框架」而非使用它
Vite-ssg
彈性自由,你可以根據不同頁面產出不同的 <head> 內容,輸出路徑是相對或絕對、檔名…等都是自訂
結論
若專案有依賴到 伺服器端的 Rewrite/Alias 規則、或需嚴格控制輸出檔名,那直接用 vite-ssg 來生成會是比較好的選擇
按讚加入粉絲團
