亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue項目怎么打包扔向服務器

發布時間:2021-02-08 16:06:03 來源:億速云 閱讀:295 作者:小新 欄目:web開發

這篇文章將為大家詳細講解有關vue項目怎么打包扔向服務器,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

當我們將 vue 項目完成后,面臨的就是如何將項目進行打包上線,放到服務器中。我使用的是 vue-cli(simple) 腳手架,所以就講一下如何將項目進行打包,并放到 tomcat 上。 

如果是 vue-cli (非 simple 腳手架),這篇文章可能有點幫助。地址鏈接:vue-cli 如何打包上線

先來描述一下期間遇到的問題有哪些:

1、打包后將 dist 文件夾和 index.html 放到 tomcat,在瀏覽器中訪問時,出現空白頁,f12 提示 404。
2、打包好的靜態資源均是絕對路徑,無法引入進項目,也是 404。

1、項目目錄結構

vue項目怎么打包扔向服務器

這是打包后的,所以有 dist 文件夾,打包方式:npm run build。

2、webpack.config.js

vue項目怎么打包扔向服務器

這里只是一小部分,因為這邊最關鍵的就是 publicPath,下面會提,這邊可以解決靜態資源 404 無法引入的問題。

3、npm run build 打包后的文件

npm run build 打包后生成一個 dist 文件夾,這里面的目錄:

vue項目怎么打包扔向服務器

我對 webpack 打包工具的原理不是很清楚,所以文件夾應該生成什么不是了解。我這邊是這樣子的。主要是一個主要的 build.js, 因為我們的 index.html 引入的就是這個 js 文件。還有一些圖片文件和 ElementUI 生成的 ttf 和 woff。

4、如何放到服務器中。

接下來就是需要將生成的 dist 文件夾和 index.html 文件放到服務器中,只需要這兩個。首先我將這兩個文件放在同一個文件夾中,我命名為 gas(隨意)。

vue項目怎么打包扔向服務器

然后將文件夾放到 tomcat 中,我將文件夾放到 tomcat 的 webapps 文件夾目錄下:

vue項目怎么打包扔向服務器

vue項目怎么打包扔向服務器

ok 部署完成,啟動 tomcat,你會發現顯示一個空白頁,一些靜態資源都是 404。

5、解決空白頁和靜態資源無法引入的問題。

1、首先空白頁的問題,可以重 f12 中看出來都是絕對路徑的原因,而我們打包后,應該的引入路徑是相對路徑,這時我們需要的是修改 index.html 頁面。

看一下沒改之前的:

vue項目怎么打包扔向服務器

看我 /dist/build.js 引用的是絕對路徑,這就導致了在 tomcat 去訪問 index.html 頁面時,報404。我們需要將路徑變成相對路徑 ./dist/build/。多一個點,很關鍵。好了到這里應該主頁面可以顯示了。

但是你會發現,我的靜態資源,我的圖片(不包括 img 形式的引入),例如我在 css 中 background:url() 的圖片顯示404。

2、解決靜態資源失效的問題

這就需要修改我們的 webpack.config.js 中的 publicPath 了,默認的 vue-cli 腳手架環境搭建好后,publicPath 是這樣的:

vue項目怎么打包扔向服務器

可以看到我們的路徑是: /dist/。所以這時候我們如果打開頁面,靜態資源的路徑都會是這樣子的,并且報錯404:http://10.0.0.181:8088/dist/bg.png?fe9b889cea51978538ce352593be0573

顯然可以看出和我們想要的路徑不一致,上面我貼出來的在 tomcat 的文件目錄中我將 dist 和 index.html 都放進了一個 gas 的文件夾中。所以正確的路徑應該是這樣的:
http://10.0.0.181:8088/gas/dist/bg.png?fe9b889cea51978538ce352593be0573

看出區別了嗎!

解決:

所以我需要改變一下 webpack.config.js 中的輸出路徑 publicPath: /gas/dist/。將最外層的文件夾路徑加進去,這樣就可以將靜態資源引入進項目了。

ok,到現在為止,最主要的兩個問題解決了,一個是 index.html 空白頁,另一個是 靜態資源路徑不正確的問題。

6、index.html 頁面中的link 和 srcipt 引用的資源失效問題:

原因還是路徑的地址不對:

妥協的解決方法是:將自己引用的資源手動放到打包出來的 dist 文件夾內,然后在 index.html 中按照 dist 的相對路徑進行引用。

vue項目怎么打包扔向服務器

代碼中的 icon.ico 就是我手動將 icon 圖標放到 dist 文件夾中,然后按照對應的引用路徑進行引用。其他的 css 和 js 引用一樣。

7、待解決的問題:

1、在我的項目中,使用了 ElementUI 框架,但是在打包放到服務器中后,發現按鈕樣式變了,所有的 padding 失效,所有我只能自己手動進行添加樣式。

2、在我的 index.html 中如果引入 link css文件時,還是沒辦法引入相對路徑,所以我將 css 樣式都放到了各自的組件中的 style 中了,其他的一般都是用 npm 注入依賴的形式進行安裝。

8、網上搜索到的相關問題和解決方法。

1、求助!Vue項目用Webpack打包后放到服務器上,但訪問是空白頁?弄了好久了也不知道什么原因

2、vue項目中,npm run build生成的index.html文件只有放在根目錄下打開才能生效,怎么解決?

3、Vue應用部署到服務器的正確方式

關于“vue項目怎么打包扔向服務器”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金溪县| 南和县| 金坛市| 凤城市| 天津市| 巴彦淖尔市| 平潭县| 闽清县| 塘沽区| 达日县| 榆社县| 岳普湖县| 江华| 响水县| 太仓市| 潍坊市| 景洪市| 井研县| 富阳市| 文成县| 老河口市| 宁阳县| 闻喜县| 开化县| 济源市| 保靖县| 延边| 南部县| 营山县| 巴东县| 镇江市| 徐州市| 遵化市| 棋牌| 富顺县| 阳新县| 大同市| 永平县| 安阳市| 清水河县| 仁寿县|