Vue 在 Development 階段都是 /
,但在 Production 階段配合 Reverse Proxy 則可能有所改變,如變成 /portal
,該如何簡單的設定呢 ?
Version
macOS Catalina 10.15.4
WebStorm 2020.1
Vue CLI 4.3.0
Vue 2.6.10
vue.config.js
module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? '/portal/' : '/',
}
如實際 deployment 時,可能希望為 /portal
,但本機只要 /
即可,可在 vue.config.js
加上 publicPath
,由 process.env.NODE_ENV
判斷為 yarn serve
或 yarn build
執行,動態改變 publicPath
即可。
Conclusion
- 雖然是很簡單的設定,但實務上卻非常有用,只要修改
vue.config.js
即可,不用大幅度修改 route - 不過這種方式有個限制,若 asset 放在
public
目錄下無效,因為publicPath
是透過 Webpack 處理,但預設並不會處理public
目錄,所以建議 asset 全部改放在src/assets
目錄下