最近在做專案,需要把專案部署在域名下的二級目錄,並且是在用vue-router的history 模式。
我們都知道vue-router 的兩種前端基本訪問模式 hash 和history 。hash 模式後面帶#,打包的時候只需要把絕對路徑(/)換成相對對路徑(./),就可以部署在任何地方,不需要伺服器配合,但是不好看,所以我們一般選擇history 模式,但是history 模式需要配合伺服器的部署。
本文主要是在vue-cli3版本下,對部署在域名的二級目錄下做四處的配置:
1. vue-router 路由的檔案的配置,根據自己部署的二級目錄填寫
1 export default new VueRouter({ 2 mode:"history", 3 base:"/web",
2.在vue.config.js配置檔案(如果沒有新建一個,專案根目錄下)
注意: baseUrl 從 Vue CLI 3.3 起已棄用,請使用publicPath。
module.exports = { publicPath:"/web" }
3.在入口檔案中index.html 的head 標籤內加入
<meta base ="/web/">
4.最後就是部署配置,以nginx 為例
server { listen 80; server_name localhost; root /home/wwwroot/; location /web { try_files $uri $uri/ /web/index.html; } }
到此,配置和部署已經完成了,將打包好的前端靜態資源放在域名指定的根目錄下的二級(多級目錄配置同上)錄即可,
注意,以上配置是針對在history模式,部署在域名下的二級目錄以上的 配置,hash 模式 和 history 模式部署在域名根目錄不需要那麼多配置
本人測試過部署過,只要按照以上配置四個地方,完全沒有問題,但是有不對之處,還請大家指出,謝謝....