解決Vue項目打包後打開index.html頁面顯示空白以及圖片路徑錯誤的問題

 Vue項目運行npm run build後會生成一個dist文件夾,咱們通常都是把這個文件夾部署到服務器上。dist文件夾裏邊有一個static文件和一個index.html頁面,這個index就是最後單頁面的最終文件。css

    問題一:我在打包完成後,打開index.html文件發現地址並無攜帶路由。html

   

    這樣的話頁面就是空白了,由於沒有組件被添加到頁面中。打開F12會看到一堆的紅色failed請求。打開請求地址是這樣的。web

    進入D盤就開始尋找static文件夾固然是找不到的。既然知道了是打包以後尋找文件的地址錯誤,就去config文件夾下的index.js中尋找問題。index.js中的build命令的配置有一個屬性叫assetsPublicPath,它的值爲‘/’。意思是根目錄,這時會從index.html所在的硬盤的根目錄下開始查找,天然沒法找到。解決辦法:npm

    改成‘./’這時就再也不是絕對路徑的根目錄了,而是改成了相對路徑,同目錄下進行查找。再次打包,頁面基本正常。服務器

    問題二:我再次打包後,頁面能夠正常打開。可是頁面上的一些圖片請求失敗。ui

    我這裏請求失敗的都是背景圖片,並且只是某一些失敗。我一直有一個疑惑就是爲何同一個css文件中的背景圖片請求有的成功有的失敗,要知道個人圖片都是放在同一個文件夾下邊的。目前這個疑惑尚未解決。.net

    打開某一個失敗的請求,咱們會發現請求的路徑是這樣的。htm

    

    也就是說這個css文件是從當前文件夾下往裏尋找static/img/XXX.png,要知道static文件夾是在dist根目錄下邊的,所以,咱們須要修改build的全局配置,改變css文件的文件請求路徑。css文件在static裏邊的css文件夾中,所以須要先‘../../’出到dist根目錄下,而後再static/img/XXX.png,就能夠正確找到對應的圖片文件。blog

    解決辦法:圖片

    修改build文件夾下邊的utils.js文件。

        再文件相同的if語句下添加下圖中選中的代碼。

    

相關文章
相關標籤/搜索