webpack中如何加载静态文件的方法步骤


Posted in Javascript onMay 18, 2019

前言:

对于非静态的文件,如js,当webpack打包时,会被直接打到模块文件中,如main.js,如果修改了,需要再次编译
而对于静态文件,如jpg,svg等,我们不希望webpack去打包,只需要在build完后,直接放到dist下的某个路径下即可,随时可以修改,并不需要再次编译

首先,看一段很熟悉的webpack配置

{
  test: [/\.jpg/],
  loader: require.resolve('url-loader'),
  options: {
    limit: 10000,
    name: 'static/media/[name].[ext]',
  },
}

它表明,在解析jpg文件时,只需要提供一个url即可,bytes小于10000的转为base64。 此url为static/media/xxx.jpg。
注意:此处的url已经不是 项目文件夹结构的那个url(如src/assets/image/xxx.jpg), 而是 static/media/xxx.jpg,当编译后,dist/static/media中会出现 xxx.jpg

那么我们如何在组件中引入静态资源呢?

有两张方式:

1、在组件最上方,使用import导入

import b from "@/assets/image/a.jpg"
//此时 b 的值为 static/media/a.jpg

在组件中

<img src={b}/>

2、使用require导入

如果不在组件上方使用import导入,而是在组件中的任意位置使用时,可通过require引入

<img src={require("@/assets/image/a.jpg")}>
//此时require("@/assets/image/a.jpg")的值就是static/media/a.jpg

那么同理,如果想让markdown等其他文件,也成为静态资源。

第一步:

{
  test: [/\.md/],
  loader: require.resolve('url-loader'),
  options: {
    limit: 10, //可以设置小点
    name: 'static/media/[name].[ext]',
  },
}

第二步:

//md文件和jpg不同,我们需要的最终是md文件的内容,不是url
axios.get(require("@/assets/image/map.md")).then(res=>{
  //res.data 就是内容
})

然后部署上去后,如果后期我们需要对map.md做修改,则直接修改static/media/map.md文件就行了,直接生效,不需要再次编译

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS的FieldSet的column列布局
Nov 20 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
浅析AngularJS中的指令
Mar 20 Javascript
three.js实现3D视野缩放效果
Nov 16 Javascript
JavaScript插入排序算法原理与实现方法示例
Aug 06 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
Sep 20 Javascript
Vue源码探究之状态初始化
Nov 14 Javascript
JS对象和字符串之间互换操作实例分析
Feb 02 Javascript
vue-cli3+typescript初体验小结
Feb 28 Javascript
小程序实现图片预览裁剪插件
Nov 22 Javascript
js实现拖拽与碰撞检测
Sep 18 Javascript
vue使用Sass时报错问题的解决方法
Oct 14 Javascript
微信小程序实现录音时的麦克风动画效果实例
May 18 #Javascript
vue+egg+jwt实现登录验证的示例代码
May 18 #Javascript
egg.js的基本使用和调用数据库的方法示例
May 18 #Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 #Javascript
webpack 代码分离优化快速指北
May 18 #Javascript
如何实现小程序tab栏下划线动画效果
May 18 #Javascript
微信小程序结合Storage实现搜索历史效果
May 18 #Javascript
You might like
MOTOROLA 摩托罗拉 MODEL 66-XI五灯中波收音机
2021/03/02 无线电
php array_unique之后json_encode需要注意
2011/01/02 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
IIS 7.5 asp Session超时时间设置方法
2017/04/17 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
ASP 过滤数组重复数据函数(加强版)
2010/05/31 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JavaScript面向对象程序设计教程
2016/03/29 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
最丑的时钟效果!js canvas时钟制作方法
2016/08/15 Javascript
JavaScript无缝滚动效果的实例代码
2017/03/27 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
详解小程序BackgroundAudioManager踩坑之旅
2019/12/08 Javascript
vue3.0搭配.net core实现文件上传组件
2020/10/29 Javascript
Python解惑之True和False详解
2017/04/24 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
2019/06/04 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
keras实现多GPU或指定GPU的使用介绍
2020/06/17 Python
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
美国探亲签证邀请信
2014/02/05 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书
导游词之贵州百里杜鹃
2019/10/29 职场文书
vue+echarts实现多条折线图
2022/03/21 Vue.js