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 相关文章推荐
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
Nov 30 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
JavaScript获取网页中第一个图片id的方法
Apr 03 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
Sep 21 Javascript
自动完成的搜索框javascript实现
Feb 26 Javascript
Angular 页面跳转时传参问题
Aug 01 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
Feb 13 Javascript
移动端手指放大缩小插件与js源码
May 22 Javascript
node跨域转发 express+http-proxy-middleware的使用
May 31 Javascript
利用Decorator如何控制Koa路由详解
Jun 26 Javascript
解决element ui select下拉框不回显数据问题的解决
Feb 20 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
微信小程序实现录音时的麦克风动画效果实例
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
PHP简洁函数小结
2011/08/12 PHP
使用php测试硬盘写入速度示例
2014/01/27 PHP
PHP实现微信公众平台音乐点播
2014/03/20 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
详解JavaScript中void语句的使用
2015/06/04 Javascript
javascript 闭包详解
2015/07/02 Javascript
jQuery购物车插件jsorder用法(支持后台处理程序直接转换成DataTable处理)
2016/06/08 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
javascript笔记之匿名函数和闭包
2017/02/06 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
2020/08/03 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
python实现可变变量名方法详解
2019/07/01 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
python/golang 删除链表中的元素
2020/09/14 Python
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
英国领先的游戏零售商:GAME
2019/09/24 全球购物
大一自我鉴定范文
2013/10/04 职场文书
2014年电厂工作总结
2014/12/04 职场文书
先进党员事迹材料
2014/12/24 职场文书
小学二年级语文教学反思
2016/03/03 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
Redis分布式锁Redlock的实现
2021/08/07 Redis
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技