【Vue】vue-cli 打包之后图片引用路径;

这是我的组件的路径;
./src/components/home目录下;
【Vue】vue-cli 打包之后图片引用路径;

图片的路径:
./static/img目录下;
【Vue】vue-cli 打包之后图片引用路径;

当我在开发的时候,引用图片的时候路径需要这样写(home组件中引用图片):

【Vue】vue-cli 打包之后图片引用路径;
我需要回退两个路径才可可以访问到./static/img下的图片;

问题:
当我npm run build 之后;生成的html中;home组件引用的图片路径也会回退两个路径;这样就报错了;
打包之后的图片地址不用回退两个路径,因为他们就在./static/img目录下,html文件和static是同级目录;

【Vue】vue-cli 打包之后图片引用路径;

【Vue】vue-cli 打包之后图片引用路径;

栗子:
这是我在home文件中引用的背景图片的地址:
【Vue】vue-cli 打包之后图片引用路径;

打包之后的路径:

【Vue】vue-cli 打包之后图片引用路径;

右键在新网页打开图片的路径:

【Vue】vue-cli 打包之后图片引用路径;

beta/static/css/static/img/**.jpg
正确的路径应该是:
beta/static/img/**.jpg;
这里被加上了/static/css,不知道怎么回事。

webpack的配置中:

【Vue】vue-cli 打包之后图片引用路径;

这个是怎么打包的。。。。

【Vue】vue-cli 打包之后图片引用路径;

回答

推荐将静态文件放入static文件夹使用绝对路径。


vue-cli生成的demo为例:

  • logo.png在static中:

    <img src='https://segmentfault.com/static/img/logo.png'/>

  • logo.png在assets中:

    <img src='https://segmentfault.com/assets/img/logo.png'/

  • webpack配置

    assetsPublicPath: './'

建议阅读:assets 和static的区别

更改build/utils.js文件中的 ExtractTextPlugin 的 options配置.

if (options.extract) {
return ExtractTextPlugin.extract({

use: loaders,
publicPath: '../../', //注意: 此处根据路径, 自动更改
fallback: 'vue-style-loader'
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}

把你的图片资源放到static文件下,不论你是在vue文件中,还是在css文件中都这样使用:

<img src='https://segmentfault.com/static/img/...'>

background:url('/static/img/...)

这样打包之后就不会出现图片路径错误了,否则vue-cli不会给你一个static文件夹啊,是不是

【Vue】vue-cli 打包之后图片引用路径;
可以在webpack配置,css使用的时候就是 ~ + 定义的名字 + 路径
background: url("~img/common/logo_w133h65.png");
但是这样之后有一个不好的地方就是写路径没有提示了,
所以还有一个办法,用过改变文件夹位置,就是css文件和vue文件找到img的路径要一致,这样写相对路径既有提示,也不会报错

楼主能把解决方法贴出来吗?

请问我也遇到同样的问题,请问楼主如何解决的?

楼主,解决了嘛?遇到和你同样的问题了

以上是 【Vue】vue-cli 打包之后图片引用路径; 的全部内容, 来源链接: utcz.com/a/73448.html

回到顶部