您好,登錄后才能下訂單哦!
這篇文章主要講解了“Vue項目打包部署的方法是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Vue項目打包部署的方法是什么”吧!
我們需要準備一個vue項目(vue-cli3或vue-cli4)、一個nginx服務器
配置vue.config.js中的publicPath
配置vue-router的模式為history
配置vue-router中的base(基態路由【與服務端配合】)
使用npm run build生成dist文件夾
配置nginx代理(進行生產環境下的反向代理,注意生產環境下devServer無效【或者你可以配置devserver的根目錄是dist都可以】)
配置nginx路由
如果你的項目中沒有這個文件,直接在項目根目錄創建它即可
1.配置publicPath
這里我們配置publicPth為路由/vue/
module.exports = { // /vue/這個名字你自己起,也可以用我這個 publicPath: process.env.NODE_ENV === "production" ? "/vue/" : "./", outputDir:'dist', }
為了兼容各種情況,我強烈建議大家路由寫成/vue/而不是寫成/vue
1.配置路由模式和基礎路由
export default new Router({ // history模式,需要和服務端配合才能在生產環境下正常使用 mode: 'history', // 基本路由,這個名字可以自己起,但是要注意和vue.config.js里面publicPath所起的名字一致 base:'/vue/', routes:[] })
我們在vue項目根目錄下運行npm run build就可以進行項目的打包了。打包后會生成dist文件夾,把它放進nginx的html文件夾下即可
1.配置nginx代理
有些時候我們需要請求一些跨域服務,在開發時,我們可以配置devServer的proxy實現跨域訪問。
但是在npm run build后,我們會發現代理無效。這是因為生產環境下的文件已經脫離devServer了,所以自然代理就沒有用了,所以一般生產環境代理我們使用nginx去做
location /api/{ proxy_pass http://121.36.94.221:6600/; index index.html index.htm; } location /info/{ proxy_pass http://ckk.xiaoandcai.cn/; index index.html index.htm; }
假設我們的nginx服務器的端口號是8080,
那么我們做跨域請求時候只需要訪問:localhost:8080/api就行了,這樣做我們就相當于訪問那個服務器下的資源
但是一般部署項目的時候我們不會發送axios去請求localhost:8080/api,我們會直接請求/api
舉個例子
//不會這樣做,因為部署服務器后地址要換成ip,不然會404 axios.get("localhost:8080/api") //你可以選擇這樣做,但是我們不推薦 axios.get("ip:8080/api") //我們推薦這樣做,讓axios根據相對路徑補全ip+端口,這樣比較省心【但是要注意你的項目要部署在nginx代理服務器下。如果你不部署的話相對路徑也是不行的,畢竟你都沒部署人家nginx服務器上,自然你的項目就不是nginx家的孩子,所以相對路徑的小名,nginx怎么能認識呢?】 axios.get("/api")
2.配置nginx路由
location / { root html; index index.html index.htm; autoindex on; #開啟nginx目錄瀏覽功能 autoindex_exact_size off; #文件大小從KB開始顯示 charset utf-8; #顯示中文 } # 寫我們的路由暗號/vue location /vue{ # alias后面寫項目所在目錄 xxxxxxx一定要注意,不能寫成D:\nginx\nginx-1.20.0\html\dist,要寫成斜杠/形式,否則會404 alias D:/nginx/nginx-1.20.0/html/dist; charset utf-8; #顯示中文 }
現在啟動nginx服務器輸入localhost:8080/vue就可以訪問我們的vue項目了
感謝各位的閱讀,以上就是“Vue項目打包部署的方法是什么”的內容了,經過本文的學習后,相信大家對Vue項目打包部署的方法是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。