Skip to content

Commit d9f5a18

Browse files
committed
add vue-cli location problem with build project
1 parent 8915797 commit d9f5a18

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
vue-cli 打包部署相信大家肯定都会, 一个命令 `npm run build` 就可以
2+
3+
但是, 会遇到问题,可以往下看:
4+
5+
#### 打包资源相对引用:
6+
7+
一般情况下,通过 `webpack + vue-cli` 默认打包的`css` `js` 等资源,路径都是绝对的
8+
9+
![](http://oxyhnxrzt.bkt.clouddn.com/vue-2.png)
10+
11+
但当部署到带有文件夹的项目中, 这种路径就会出现问题, 因为 把配置的 `static` 文件夹当成了根路径,那么要解决这种问题,就得引用相对路径。
12+
13+
#### 解决办法
14+
15+
打开: `webpack.prod.conf.js`
16+
17+
找到: `output` 增加 `publicPath:'/'` 即可,如图:
18+
19+
![](http://oxyhnxrzt.bkt.clouddn.com/vue-1.png)
20+
21+
那么这样后, 资源的引用路径就正确了。
22+
23+
#### 或者(注意: 这是或者)
24+
25+
`config` 文件夹下的 `index.js` 中修改 `assetsPublicPath:'./' ` 同样也可以达到资源的相对引用。
26+
27+
![](http://oxyhnxrzt.bkt.clouddn.com/vue-3.png)
28+
29+
30+
31+
---
32+
33+
#### 背景图片的引用问题
34+
35+
上面虽然解决了资源路径的引用问题,但是资源里面的背景图片,不想index.html 中加载资源一样, 通过 `./static/js/app.js` 引用可以正常加载, 图片资源有的是通过 css加载的,比如 `background:url(../images/logo.png) no-repeat` ,被相对打包后变成了 `url(static/img/logo.index.234234.png) no-repeat` 所以我们要保留css引用图片的正常路径:
36+
37+
**解决:**
38+
39+
在 build 文件夹下的 utils.js 代码,中添加一句: 看下图
40+
41+
![](http://oxyhnxrzt.bkt.clouddn.com/vue-4.png)
42+
43+
添加如图所示的一行代码,这样不论是字体还是图片的引用问题都能解决.

0 commit comments

Comments
 (0)