千家信息网

vue中图片加载不出来怎么办

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要为大家展示了"vue中图片加载不出来怎么办",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"vue中图片加载不出来怎么办"这篇文章吧。一、项目打包
千家信息网最后更新 2026年11月04日vue中图片加载不出来怎么办

这篇文章主要为大家展示了"vue中图片加载不出来怎么办",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"vue中图片加载不出来怎么办"这篇文章吧。

一、项目打包完成后,打开整体空白

1、路径问题

原因

在vue+webpack的项目中,项目打包之后的css和js的引用路径是绝对路径,项目部署之后会将静态当成根目录,就造成了文件引用路径的错误。

解决办法

通过修改配置文件,将绝对路径改为相对路径。

具体操作如下:

1.vue-cli 3.0版本之前

配置config下面的index.js中bulid模块导出的路径。因为index.html里边的内容都是通过script标签引入的,而你的路径不对,打开肯定是空白的。先看一下默认的路径。

module.exports = { build: { env: require('./prod.env'), index: path.resolve(__dirname, '../dist/index.html'), assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: '/', productionSourceMap: true,

assetsPublicPath默认的是 ‘/' 也就是根目录。而我们的index.html和static在同一级目录下面。 所以要改为 ‘./ '

2.vue-cli 3.0版本之后

配置vue.config.js文件

module.exports = {  // baseUrl:'./', // vue-cli3.3以下版本使用  publicPath:'./' // vue-cli3.3+新版本使用

2、vue-router的history模式打包后界面空白

src里边router/index.js路由配置里边默认模式是hash,如果你改成了history模式的话,打开也会是一片空白。所以改为hash或者直接把模式配置删除,让它默认的就行 。

如果非要使用history模式的话,需要你在服务端加一个覆盖所有的情况的候选资源:如果URL匹配不到任何静态资源,则应该返回一个index.html,这个页面就是你app依赖页面。

// mode: 'history' // 默认hash

二、assets目录下图片加载不出来

vue-cli的assets和static的两个文件的区别

  • assets:在项目编译的过程中会被webpack处理解析为模块依赖,只支持相对路径的形式,如< img src=’./logo.png‘>和background:url(./logo.png),‘./logo.png‘是相对资源路径,将有webpack解析为模块依赖。

  • static:在这个目录下文件不会被webpack处理,简单就是说存放第三方文件的地方,不会被webpack解析。他会直接被复制到最终的打包目录(默认是dist/static)下。必须使用绝对路径引用这些文件,这是通过config.js文件中的build.assetsPublic和build.assertsSubDirectory链接来确定的。任何放在static/中文件需要以绝对路径的形式引用:/static[filename]。

根据webpack的特性,总的来说就是static放不会变动的,第三档的文件,asserts放可能会变动的文件

原因

在webpack中会将图片图片来当做模块来用,因为是动态加载的,所以url-loader将无法解析图片地址,然后npm run dev 或者npm run build之后导致路径没有被加工【被webpack解析到的路径都会被解析为/static/img/[filename].png,完整地址为localhost:8080/static/img/[filename].png】

解决办法

1.将图片作为模块加载进去

比如 images:[{src:require(‘./1.png’)},{src:require(‘./2.png’)}],这样webpack就能将其解析。

2.将图片放到static目录下

但必须写成绝对路径如images:[{src:"/static/1.png"},{src:"/static/2.png"}]这样图片也会显示出来,当然你也可以通过在webpack.base.config.js定义来缩短路径的书写长度。

简化本地图片加载的方法

1.在static里面新建一个imageUrls文件夹

2.填写imageUrls文件

{  'imageUrls': [    {      'image1': '/static/image/image1.png'    },    {      'image2': '/static/image/image2.png'    }  ]}

3.将imageUrls引入响应的vue文件中,解析引用就行了

import img from '../../../static/imageUrls/imageUrls.json'export default {  data() {    return {      imageGroups: img.imageUrls    }  }}

以上是"vue中图片加载不出来怎么办"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

路径 文件 图片 模块 模式 目录 项目 配置 内容 空白 怎么办 就是 版本 篇文章 资源 办法 原因 地址 形式 根目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技园 互联网和科技技术 互联网科技资迅 合肥互联网科技公司 中国互联网科技发展 奔汉互联网科技 宁波青枫互联网科技有限公司 互联网金融科技公司干啥的 互联网软件和科技 重庆互联网医院沙龙医盟信息科技 武汉健翔互联网络科技有限公司 互联网科技公司有风险吗 徐州市互联网科技有限公司 国大互联网教育科技有限公司薪资 陕西云淼互联网科技公司 万物互联网智能科技 互联网领先科技活动 深圳互联网科技园地址 第三届互联网大会安防黑科技 互联网的黑科技实验室 上海睿民互联网科技有限公司 互联网佳科技有限公司 互联网科技媒体 深圳前海聚择互联网科技有限公司 互联网校园科技培训 皮皮虾互联网科技有限公司 科技互联网经济论坛 互联网科技和医药行业 平安好医生打造互联网科技医疗 互联网科技快速发展优美句子
0