当前位置: 首页 > news >正文

本地非文字资源无法加载

目录

 

 方法A.静态/动态绑定路径

方法B.require导入(运行时加载)

方法C.import导入(x)(编译时加载)

方法D.ref直接操作元素赋值(x)

相关知识

import和requir区别

模板路径:webpack和vue中路径@

视频,图片流,要么提前解析,要么require提前导入

原理:流式传输,边传输边处理,数据分包 

方法A.静态/动态绑定路径

<template><div><img src="../../assets/images/logo.png" /></div>
</template><template><div><img src="@/assets/images/logo.png" /></div>
</template>

方法B.require导入(运行时加载)

const imgElements = this.$refs.uploadRef.$el.querySelectorAll('img');imgElements.forEach((imgElement: HTMLImageElement) => {imgElement.src = require('@/assets/img/excel.png');});

方法C.import导入(x)(编译时加载)

方法D.ref直接操作元素赋值(x)

运行时路径没有被正确解析,依旧是“@/assets/img/excel.png”

因为 JavaScript 中的相对路径是相对于当前执行脚本文件的路径,

而不是相对于 HTML 文件或项目根目录的路径,可以尝试重新编译

<template><img ref="myImage" />
</template><script>
export default {mounted() {this.$refs.myImage.src = "@/assets/img/excel.png";}
};
</script>

一般用绝对路径就没有问题,但模板路径的话,解析可能失败,

::v-deep .mds-upload-card-icon {&::before {content: '';display: block;width: 31px;height: 31px;background: url('../../assets/img/excel.png');background-size: 31px 31px;z-index: 9999;}
}
//深度选择器::v-deep,改变第三方插件或者动态生成插件的样式
//在 CSS 中,& 符号用于引用父选择器.mds-upload-card-icon

相关知识

import和requir区别

require/import// CommonJS 的写法
const moduleA = require('moduleA');
const func1 = moduleA.func1;
const func2 = moduleA.func2;
// ES6 的写法
import { func1, func2 } from 'moduleA';module.exports/export// commonJS 的写法
var React = require('react');
var Breadcrumbs = React.createClass({render() {return <nav />;}
});
module.exports = Breadcrumbs;// ES6 的写法
import React from 'react';
class Breadcrumbs extends React.Component {render() {return <nav />;}
};
export default Breadcrumbs;
  1. 规范:require是CommonJS,AMD规范的模块化语法,import是ECMAScript 6规范的模块化语法,如果要兼容浏览器的话必须转化成es5的语法;CommonJS模块默认export的是一个对象,即使导出的是基础数据类型
  2. 本质:require是赋值过程,其实require 的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量,引入复杂数据类型时,数据浅拷贝该对象。。import是解构过程。
  3. 加载:require是运行时加载,import是编译时加载;
  4. 位置:require可以写在代码的任意位置,import只能写在文件的最顶端且不可在条件语句或函数作用域中使用;
  5. 改变:require通过module.exports导出的不能再变,import通过export导出的值可以改变;

模板路径:webpack和vue中路径@

在Vue中,@符号通常用作别名,它是Vue CLI(Vue命令行工具)提供的一种特殊配置。

默认情况下,@别名在Webpack中被配置为指向项目的src目录

tsconfig.json
{"compilerOptions": {"baseUrl": "",//baseUrl": "." 指定了项目的根路径,"paths": {"@/*": ["src/*"],//配置了 @ 别名指向 src 目录。// 其他路径映射...}}
}
http://www.lryc.cn/news/97383.html

相关文章:

  • Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购
  • 万向节死锁
  • 大数据课程D1——hadoop的初识
  • xml命名空间
  • 七、Kafka源码分析之网络通信
  • WEB安全测试通常要考虑的测试点
  • 关于uni.createInnerAudioContext()的duration音频长度获取不到问题
  • 使用rknn-toolkit2把YOLOV5部署到OK3588上
  • 【雕爷学编程】Arduino动手做(93)--- 0.96寸OLED液晶屏模块14
  • ffplay播放器剖析(5)----视频输出剖析
  • 21.2:象棋走马问题
  • 【CSS】手写 Tooltip 提示组件
  • MySQL DDL语法
  • Git 绑定账号 和clone
  • ftp和sftp区别,以及xftp的使用
  • C++ 编程入门(一)—— Hello World
  • openlayers系列:加载arcgis和geoserver在线离线切片
  • 《人工智能安全》课程总体结构
  • unity关于匀速移动某些值的方法
  • 解决VScode下载太慢的问题记录
  • Gitlab服务器备份恢复及系统升级
  • docker入门讲解
  • 【Matlab】基于卷积神经网络的数据回归预测(Excel可直接替换数据))
  • 在Springboot集成Activiti工作流引擎-引入、调用,测试【基础讲解】
  • Java书签 #解锁MyBatis的4种批量插入方式及ID返回姿势
  • 在react项目中如何引入国际化
  • spring学习笔记十三
  • react native 本地存储 AsyncStorage
  • Postgresql数据库中的时间类型汇总
  • 算法刷题Day 51 最佳买卖股票时机含冷冻期+买卖股票的最佳时期含手续费