vue中Image 事件 图片加载出错

html

<img :src="isWebp ? item.avatar : item.avatar + '.org'" class="avatar" @error="error(item,$event)" @load='load(item)'>

js

export default {
  name: "App",
  data () {
    return {
        item{
            avatar:‘’,
            status:0,
        },
        isWebp: true
     }
  },
  created () {
    this.isWebp = this.suportWebp() //判断是否支持webp格式
  },
  methods: {
    error (item, e) {  // 图片加载出错
      if (item.status == 0) {
        e.target.src = item.avatar;
        item.status = 1;
      }
    },
    load(){ //图片加载完成
    },
    suportWebp () {
      const support = localStorage.getItem("supportWebP");
      if (support === "true") {
        return true;
      } else if (support === "false") {
        return false;
      } else {
        const img = new Image();
        img.src =
          "data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA";
        img.onload = () => {
          const result = img.width > 0 && img.height > 0;
          if (result) {
            localStorage.setItem("supportWebP", "true");
            return true
          } else {
            isWebp.setItem("supportWebP", "false");
            return false
          }
        }
      }
    }
在Vite项目开发环境,`new URL()` 方法通常用于生成一个指向文件系统或网络资源的URL对象。如果你在使用这个方法加载图片资源时遇到了打包错误,可能是因为Vite对文件路径的处理与传统的Webpack或其它构建工具有所不同。Vite是基于原生ESM的,它会对静态资源进行特定的处理,比如通过插件来支持图片资源。 如果你在使用`<el-image>`组件(假设这是Element UI或其衍生组件库的一部分)时,遇到`new URL()`加载图片的打包错误,可能是因为打包时没有正确处理URL资源。以下是一些可能的解决方法: 1. 使用正确的路径。确保在使用`new URL()`时提供的是正确的相对路径或绝对路径。例如,如果图片与当前文件在同一目录下,路径可以是`./image.png`;如果在子目录下,则为`./subdirectory/image.png`。 2. 检查Vite配置。在`vite.config.js`文件,确认是否有配置适当的插件来处理静态资源,如`@vitejs/plugin-vue`等。例如,使用Vue时,应该有如下配置: ```javascript import vue from '@vitejs/plugin-vue' export default { plugins: [vue()], // 其他配置... } ``` 3. 使用require或import代替。在某些情况下,直接使用JavaScript的`require()`函数或ES6的`import`语句来引入图片资源可能会更简单且不会出错: ```javascript // 使用require const backgroundImage = require('./path/to/your/image.png'); // 使用import import backgroundImage from './path/to/your/image.png'; ``` 这样做可以确保Vite能够正确处理图片资源。 4. 如果你在使用某些UI框架的组件时遇到问题,可能需要查看该框架的文档,确认是否有特殊的配置要求或使用方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值