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>再次打开网页,既可以正常运行。