1. 程式人生 > >vue-cli 3.0 建立的專案,dev下能執行,打包後報錯,頁面空白

vue-cli 3.0 建立的專案,dev下能執行,打包後報錯,頁面空白

dev下執行時正常的,但在打包後就不正常了,如下圖


報各種檔案找不到,原因是在html引入的img,js或css的路徑不對,如下:

<link as=style href=/css/app.f9f2eaa0.css rel=preload>
<link as=style href=/css/vendors~app.25.767b7576.css rel=preload>
<link as=script href=/js/app.e21ec01e.js rel=preload>
<link as=script href=/js/vendors~app.0bb5b125.js rel=
preload> <link href=/css/0.0.b02908be.css rel=prefetch> <link href=/css/1.1.1dec8fb4.css rel=prefetch> <link href=/css/10.10.54b09be9.css rel=prefetch> <link href=/css/11.11.827b5aa4.css rel=prefetch> <link href=/css/12.12.804c5b00.css rel=prefetch> <link href=/css/13.13.1c0a385f.css rel=
prefetch> <link href=/css/14.14.958f2067.css rel=prefetch> <link href=/css/15.15.e48a75f3.css rel=prefetch> <link href=/css/16.16.50afbf7f.css rel=prefetch> <link href=/css/17.17.11a1b679.css rel=prefetch>

需要在路徑前加一個‘.’,如:

<link href=./css/0.0.b02908be.css rel=prefetch>

所以這原因不是程式碼寫錯了,是webpack配置不對,改一下webpack配置就行了。但是在vue-cli 3.0 建立的專案中是找不到webpack的配置檔案,因為vue-cli 3.0 將其封裝起來了,只需要在專案的根目錄下的vue.config.js檔案中修改就行了(若專案沒有該檔案,直接在根目錄下新增一個),將baseUrl的值設為 ‘./’即可,修改如下:

module.exports = {
    //...
baseUrl: './'
//...
}

在此編譯後,檔案引入如下:

<link as=script href=./js/app.99db6f12.js rel=preload>
<link as=script href=./js/vendors~app.a9b7ac12.js rel=preload>
<link href=./css/0.0.b02908be.css rel=prefetch>
<link href=./css/1.1.1dec8fb4.css rel=prefetch>
<link href=./css/10.10.54b09be9.css rel=prefetch>
<link href=./css/11.11.827b5aa4.css rel=prefetch>
<link href=./css/12.12.804c5b00.css rel=prefetch>
<link href=./css/13.13.1c0a385f.css rel=prefetch>
<link href=./css/14.14.958f2067.css rel=prefetch>
<link href=./css/15.15.e48a75f3.css rel=prefetch>
<link href=./css/16.16.50afbf7f.css rel=prefetch>
<link href=./css/17.17.11a1b679.css rel=prefetch>
<link href=./css/18.18.ad784bfe.css rel=prefetch>
再次開啟網頁,既可以正常執行。