在使用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上线后图片不显示_vue开发之图片加载不出来问题解决相关推荐

  1. Java 技术篇-IntelliJ IDEA修改类名后运行提示找不到或无法加载主类问题解决方法

    运行后提示提示"找不到或无法加载主类",看右上角可以看到默认运行的主类名字没有被更新,问题就出在这里了. 右键项目直接运行新项目就好了,后面默认运行主类就会被更新过来了. 可以看到 ...

  2. php ajax loading图片居中显示,php-通过ajax框架加载漂亮照片

    我有一个角度应用程序,可以显示一些图像.我正在打开prettyPhoto ajax窗口,并将路径名传递给URL.我的脚本可以很好地加载图像,但是,它并没有像传统上的prettyPhoto那样显示图像. ...

  3. vue+webpack项目打包后背景图片加载不出来问题解决

    vue+webpack项目打包后背景图片加载不出来问题解决 参考文章: (1)vue+webpack项目打包后背景图片加载不出来问题解决 (2)https://www.cnblogs.com/mica ...

  4. php 载入css就可以显示,如何在进度条加载后显示页面

    1.思路:加入很多图片,以延迟加载时间,实现加载完后显示图片.定义一个外层p,覆盖住图片,在内层p中引入加载时显示的图片,让内层p居中在页面上,利用setInterval定时器设置3秒后将外层p隐藏, ...

  5. iOS开发 关于tableView加载图片时出现卡顿时的解决办法

    新手做开发的时候一般都会遇到使用tableView从网上加载图片并显示图文的时候会有卡顿现象,而这种卡顿现象也是因为多种原因造成的.一般可以分为两种:一种是由于网上加载图片需要动态定义cell的高度( ...

  6. 用手机UC浏览器页面打开vue项目,图片,css,js都没加载

    用手机UC浏览器页面打开vue项目,图片,css,js都没加载 用HBuilder X创建了一个普通的vue项目,在电脑上使用浏览器看没有什么问题,然后提交到了公司的服务器上,发现用手机,除了火狐,谷 ...

  7. android 图片变量,Android开发实现ImageView加载摄像头拍摄的大图功能

    本文实例讲述了Android开发实现ImageView加载摄像头拍摄的大图功能.分享给大家供大家参考,具体如下: 这个方法是从官方demo中摘录的,在此记录学习. 权限 android:name=&q ...

  8. AutoCAD二次开发(C#)完成后,如何实现CAD启动时自动加载dll(不必输入netload)?

    AutoCAD二次开发(C#)完成后,如何实现CAD启动时自动加载dll(不必输入netload)? 1.复制编译后的dll路径,比如我的是[C:\SectionManager_CAD_1.1_031 ...

  9. 极智开发 | Go 热加载之 fresh

      欢迎关注我的公众号 [极智视界],获取我的更多笔记分享   大家好,我是极智视界,本文介绍一下 Go 热加载之 fresh.   热加载是指可以在不重启服务的情况下,保存后即可让更改的代码生效的一 ...

  10. 【学习分享】2、创龙 TMS320C6748开发板程序加载和烧写(一)

    此部分由于篇幅过长,将分为五个小点进行叙述,此处主讲基于仿真器的程序加载和烧写,所用器件为创龙TMS320C6748开发板.需要注意的点已在备注中进行说明. 如果需要从头开始进行本使用手册的阅读,欢迎 ...

最新文章

  1. java美容美发项目下载_基于jsp的美容美发管理-JavaEE实现美容美发管理 - java项目源码...
  2. log4j配置不生效
  3. HarmonyOS之基础环境和应用开发流程
  4. mysql查询今天,昨天,近7天,近30天,本月,上一月数据
  5. Java Jackson源码研究 - how is class member attribute information is parsed by Serializer
  6. SystemVerilog声明的位置
  7. [WCF安全系列]认证与凭证:用户名/密码认证与Windows认证
  8. 关于org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor的队列
  9. 面向对象的一些补充(type创建类,__mro__)
  10. Atitit. Atiposter 发帖机 新特性 poster new feature v11  .docx
  11. 计算机学科融合信息技术,信息技术与学科教学融合课例解析
  12. Vue经典开源项目汇总
  13. php 阿里云 批量 单个 发送短信 (拿来即用)
  14. 《Windows 网络操作系统》集中实训任务书详解
  15. tq210 开发板 刷linux,TQ210开发板嵌入式笔记.pdf
  16. PX4 Bootloader解析
  17. Win10如何启用Administrator账户
  18. 视频编辑软件编辑星海外英文网站上线
  19. android中setClickable,setEnabled,setFocusable的含义及区别
  20. 软考之软件设计师——数据库技术基础

热门文章

  1. excel数据导入mysql
  2. 2014腾讯校园招聘回顾
  3. 短信接口api发送-kewail
  4. 不带脏字的英文骂人法
  5. 2015年9月29笔试总结
  6. Gateway 网关路由、断言、过滤
  7. Visual Studio 类向导HRESULT:0x80070057 (E_INVALIDARG)的异常的解决方案
  8. 强化学习第7章——基于策略的强化学习
  9. win2003服务器360修复漏洞打不开网页,360浏览器打不开网页,教您怎样解决360浏览器打不开网页...
  10. GIS在农业方面的应用