vue的图片路径引用问题解决

我们需要在template,script,style下引用图片,如下。
比如

<!-- xxx.vue里面的template标签里面的代码 -->
<img class="img_fyg" src="../../assets/feiyi/img_fyg.png" alt />
/* css 代码 */
background-image: url("../../assets/meishu/bg_msg-black.png");
// js代码

"../../assets/feiyi/img_fyg.png"
// 或者
require("@assets/feiyi/feiyi_item_big.jpg")

这里能用@assets是因为在vue.config.js里面设置了如下参数。

const path = require('path');

function resolve(dir) {
  return path.join(__dirname, dir);
}
module.exports = {
  lintOnSave: true,
  chainWebpack: (config) => {
    config.resolve.alias
      .set('@', resolve('./src'))
      .set('@assets', resolve('./src/assets'))
  },
};

本地开发的时候,因为域名是http://localhost:8080,也就是/,vue自动帮你转换成相对/路径。
build的时候,vue默认把图片路径指定在/下。图片地址也就是在/img/xxx.jpg
如果项目部署在域名是http://www.aaa.com/vue//img/xxx.jpg自然找不到图片。
我们build的时候需要指定一个路径/vue/,因为vue/img/xxx.jpg是正确的路径。
修改vue.config.js配置即可。

const path = require('path');

function resolve(dir) {
  return path.join(__dirname, dir);
}
module.exports = {
  lintOnSave: true,
  chainWebpack: (config) => {
    config.resolve.alias
      .set('@', resolve('./src'))
      .set('@assets', resolve('./src/assets'))
  },
  publicPath:'/vue/'
};
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 33、JS中的本地存储 把一些信息存储在当前浏览器指定域下的某一个地方(存储到物理硬盘中)1、不能跨浏览器传输:在...
    萌妹撒阅读 6,511评论 0 2
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,514评论 1 45
  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 8,207评论 1 4
  • 背景 使用vue-cli创建的项目,我将图片保存在了static目录下,开发时没有问题,图片都能显示。但部署到线上...
    family2hu阅读 10,907评论 0 2
  • 网页和手机 app 逐渐摈弃了传统单一的页面设计,向完全个性化的用户体验发展。这种发展也是基于大量独立内容模块的流...
    Perry阿力阅读 12,754评论 0 27

友情链接更多精彩内容