Vue 使用 History 模式進(jìn)行路由導(dǎo)航,這種模式不會(huì)使用哈希值,而是利用 HTML5 History API (history.pushState 和 history.replaceState)來管理瀏覽器歷史記錄。這意味著在進(jìn)行服務(wù)端渲染時(shí),需要在 Node.js 服務(wù)器上配置正確的路由規(guī)則來確保路由守衛(wèi)和跳轉(zhuǎn)邏輯能夠正確地工作。
首先,我們需要將所有請(qǐng)求重定向到我們的前端頁面,這樣才能啟用 Vue 的路由系統(tǒng)。在 Node.js / Express 中,可以通過以下代碼實(shí)現(xiàn):
app.get('*', (req, res) =>{ res.sendFile(path.join(__dirname, '/public/index.html')); });
這其中,我們需要確保前端頁面的根路徑正確,比如:
const router = new VueRouter({ mode: 'history', base: '/app/', // ... });
其中,base 指定了前端頁面的根路徑,這里要和服務(wù)器上重定向的路徑對(duì)應(yīng)。
如果我們需要訪問服務(wù)器上的 API,我們需要使用另一個(gè)路由規(guī)則。在 Node.js / Express 中,可以采用以下代碼實(shí)現(xiàn):
app.use('/api', apiRouter);
這樣,當(dāng)我們的前端頁面需要訪問 /api/* 的時(shí)候,就能夠正確地路由到后端 API 路由了。
總之,Vue 的 History 模式需要在服務(wù)器上進(jìn)行正確的路由配置。通過以上方法,我們可以實(shí)現(xiàn)正確的前端和后端路由規(guī)則,來確保 Vue 能夠正確地處理客戶端請(qǐng)求。