首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Webpack 5:使用contentHash时html中的图像源

Webpack是一个现代化的静态模块打包工具,它可以将各种资源(包括JavaScript、CSS、图片等)打包成一个或多个静态文件,以便在浏览器中加载。Webpack 5是Webpack的最新版本,它引入了许多新功能和改进。

当使用Webpack 5的contentHash选项时,可以确保在文件内容发生变化时,文件名会发生变化,从而避免浏览器缓存旧的文件。这对于解决缓存问题非常有用,因为当文件内容发生变化时,浏览器会重新下载新的文件。

在HTML中使用图像时,可以通过Webpack的file-loader或url-loader来处理。这些加载器可以将图像文件复制到输出目录,并返回图像文件的URL。当使用contentHash时,可以通过配置Webpack来生成带有contentHash的图像文件名,并在HTML中引用这些文件。

以下是使用Webpack 5时在HTML中使用图像源的步骤:

  1. 首先,安装file-loader或url-loader:
代码语言:txt
复制
npm install file-loader --save-dev

代码语言:txt
复制
npm install url-loader --save-dev
  1. 在Webpack配置文件中,添加对图像文件的处理规则。例如,使用file-loader:
代码语言:txt
复制
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.(png|jpe?g|gif)$/i,
        use: [
          {
            loader: 'file-loader',
            options: {
              name: '[name].[contenthash].[ext]',
              outputPath: 'images',
            },
          },
        ],
      },
    ],
  },
  // ...
};

或者,使用url-loader:

代码语言:txt
复制
module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.(png|jpe?g|gif)$/i,
        use: [
          {
            loader: 'url-loader',
            options: {
              name: '[name].[contenthash].[ext]',
              outputPath: 'images',
              limit: 8192, // 小于8KB的图像将被转换为base64编码
            },
          },
        ],
      },
    ],
  },
  // ...
};
  1. 在HTML文件中,使用相对路径引用图像。Webpack会根据配置生成带有contentHash的图像文件,并将其复制到输出目录中的指定位置。

例如,在HTML中引用图像:

代码语言:txt
复制
<img src="images/example.png" alt="Example Image">

这样,Webpack会将example.png复制到输出目录的images文件夹中,并生成带有contentHash的文件名,例如example.a1b2c3d4.png。在HTML中使用这个文件名作为图像源,确保在图像内容发生变化时,浏览器会重新下载新的图像文件。

腾讯云提供了多个与Webpack相关的产品和服务,例如云托管(CloudBase),它提供了一个无服务器的云开发平台,可以方便地部署和管理Webpack打包后的静态文件。您可以通过以下链接了解更多关于腾讯云云托管的信息:云托管产品介绍

请注意,以上答案仅供参考,具体的配置和使用方法可能因项目需求和个人偏好而有所不同。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

HTML5Canvas元素使用总结 原

HTML5Canvas元素使用总结     Canvas提供了开发者自定义绘图接口,我们可以公国getContext()函数来获取绘图上下文进行绘制操作,这个函数可以传入两个参数,其中第1个参数设置绘图上下文类型...,想要在裁剪区域外绘制使用restore函数来还原绘图上下文。...2.绘制文本和图像     前面示例了使用Canvas进行图形绘制,除了图形,使用Canvas也可以轻松绘制出图像与文本。...使用drawImage函数进行图像绘制,如下: var image = document.createElement("img"); image.src = 'img/HBuilder.png...其中sx,sy和sw,sh用来对原图像进行裁剪,只选择图像部分进行绘制,x,y,w,h设置绘制在画布上坐标和尺寸。

1.8K10

Webpack多入口文件、热更新等体验

:一个函数,使用编程语言创建模板 inject:js插入位置:body, head 模板可以访问配置项 files:为webpackstats项,可以在模板文件中使用或者 webpackConfig...children 返回,把第三方vendor包,分解到业务包 chunks 数组,从指定模块提供共用vendor包 1. vendor打成一个包: entry:{ vendor...,表示当前loader路径 ExtactTextPlugin在Plugins构造,至少需要传入一个文件名参数 filename文件名,可以指定一个固定,也可用[name]....[contenthash]来指定文件名,[name]:与entrychunk名称一致,[id]:将entrychunkid一致;[contenthash]:根据内容生成hash值 参数名称 说明...[contenthash]来指定文件名,[name]:与entrychunk名称一致,[id]:将entrychunkid一致;[contenthash]:根据内容生成hash值 options

2.6K60

40·灵魂前端工程师养成-前端框架webpack

@4 ---- webpack作用 转译代码(ES6转译为ES5,SCSS转译为CSS) 构建build 代码压缩 代码分析 ---- 创建项目 # 创建webpack项目目录 MacBook-pro...-1 driverzeng$ yarn build  webpack生成html ---- 使用webpack生成html // 安装html-webpack-plugin这个插件 MacBook-pro...使用多配置文件 我们刚才使用webpack dev server 只能在development模式下,那么我们代码写完要发布怎么办?...我们需要两个配置文件互相切换 生产我们使用命令 yarn build 开发我们使用命令 yarn start ---- 不同命令使用不同config 首先创建两个配置文件 webpack.config.js...引入图片 首先,我们使用js操作html引入一个图片  下载一个图片,放入assets文件夹,然后使用js调用,插入html const div = document.getElementById

77710

2020-6-1-理解webpackhash,contenthash,chunkhash

今天和大家聊一聊webpack不同hash值作用。 ---- 问题来源 对于浏览器来说,一方面期望每次请求页面资源,获得都是最新资源;一方面期望在资源没有发生变化时,能够复用缓存对象。...这个时候,使用文件名+文件哈希值方式,就可以实现只要通过文件名,就可以区分资源是否有更新。 而webpack就内置了hash计算方法,对生成文件可以在输出文件添加hash字段。...此时使用chunkhash,能够保证整个打包内容更新准确性。 contenthash用法 对于css文件来说,一般会使用MiniCssExtractPlugin将其抽取为一个单独css文件。...明明经常看到在处理一些图片,字体file-loader打包使用是[name]_[hash:8].[ext] 但是如果改了其他工程文件,比如index.js,生成图片hash并没有变化。.../post/%E7%90%86%E8%A7%A3webpack%E4%B8%8D%E5%90%8Chash%E5%80%BC%E7%9A%84%E4%BD%9C%E7%94%A8.html ,以避免陈旧错误知识误导

2.8K20

从零搭建Webpack5-react脚手架(附源码)

Webpack4 没有不兼容性变更导致不合理 state 尝试现在引入重大更改来为将来功能做准备,以使我们能够尽可能长时间地使用 Webpack 5 新增Module Federation(联邦模块...) 搭建指南 推荐大家使用我在我们公司(深圳明云空间)做脚手架,给大家一键生成项目模板,这样大家在看本文时候会得到更好提升 生成模板步骤: npm i ykj-cli -g ykj init...webpack5 (这里选择通用项目模板) cd webpack5 yarn yarn dev 开始搭建 首先新建文件夹,使用yarn初始化项目 下载webpack webpack-cli最新版本...在paths文件内,用变量记录几个关键目录: 编写基础webpack.base.js配置文件,引入依赖 编写entry和output字段: 这里要注意是,webpack5contenthash算法进行了优化...,这里可以在chunkhash和contenthash中选择一个,建议contenthash 编写基础loader配置: 这里要注意是:webpack5对于资源,类似:图片、字体文件等,可以用内置asset

57710

【专业领域】你所不知道html5html那些事(五)——web图像

文章简介: 现在页面,一般都离不开图像,而怎么做才能让我们页面图像加载又快又好呢?在优化页面速度时候还有什么事是你所不知道呢?...下面看看今天我为大家带来了哪些关于web图像你所平时不一定关心事与一些有建设性建议吧: 1)关于web页面图像你需要关注关键点有那些? 2)web页面图像格式选择需要注意什么?...3)标签用法细节小结第一个问题 关于web页面图像你需要关注关键点有那些?...页面图像格式选择需要注意什么?...;文本提示标准用法就是用alt属性;理论上说解释文字没有长度限制,但是一般浏览器不会自动换行,所以呢为了用户体验最好控制在50个字符以内; 3.在HTML5规定IMG标签一定要用ALT属性

80370

webpack4.41+性能优化(高级篇)

: 1, // 要提取chunk最少被引用1次 maxAsyncRequests: 5, // 按需加载并行加载文件最大数量 maxInitialRequests: 3,...webpack在处理文件路径,默认在Unix是/,在Windows是\,[\\/]避免在跨平台使用时出现问题 分割chunk组规则里优先级priority有什么用?...[contentHash:10].js提取出来,加上runtimeChunk配置之后,打包如下 打包之后 html文件,只引入main....[contenthash:10].js里面,manifest在旧版webpack打包可能会有差异,正是这种差异导致在旧版哪怕内容没改变,contenthash值也会发生改变,原因在于包之间关系或者...对于一个日期处理功能,为何这个库会占用如此大体积,仔细查看发现当引用这个库时候,所有的locale文件都被引入,而这些文件甚至在整个库体积占了大部分,因此当webpack打包移除这部分内容会让打包文件体积有所减小

67510

我所知道webpack5那些不太一样改变

5webpack 5自身也加入了持久化缓存,缓存生成 webpack 模块和 chunk,来改善构建速度。...更好hash算法 这里指就是访问web页面浏览器缓存,我们也知道,之前有 hash chunckhash contenthashwebpack 5,把hash改成了fullhash。...contenthash contenthash顾名思义是根据打包内容计算出 hash 值。 当然,这么看好像,看不出啥问题,不就是把一个 hash 改成 fullhash 而已嘛?...总结 当然,在webpack 4,Tree Shaking 对嵌套导出模块未使用代码无法很好进行 Tree Shaking,当然我们也可以借助一些plugin来实现,但是到了webpack 5得到了很大改进...// 在webpack5,可以直接使用内置资源模块就行了 module.exports = { // ...

70810

Webpack】1453- Webpack5 一些知识

5webpack 5自身也加入了持久化缓存,缓存生成 webpack 模块和 chunk,来改善构建速度。...更好hash算法 这里指就是访问web页面浏览器缓存,我们也知道,之前有 hash chunckhash contenthashwebpack 5,把hash改成了fullhash。...contenthash contenthash顾名思义是根据打包内容计算出 hash 值。 当然,这么看好像,看不出啥问题,不就是把一个 hash 改成 fullhash 而已嘛?...总结 当然,在webpack 4,Tree Shaking 对嵌套导出模块未使用代码无法很好进行 Tree Shaking,当然我们也可以借助一些plugin来实现,但是到了webpack 5得到了很大改进...// 在webpack5,可以直接使用内置资源模块就行了 module.exports = { // ...

61620

webpack5学习笔记

/, type: 'json', parser: { parse: json5.parse } } 使用文件 babel-loader 将es6转化为es5 babel-loader:在webpack...:false 小即快 使用更少或者更小library 在多页面应用使用splitChunksPlugin 并且开启async 移除未引用代码 只编译当前正在开发代码 持久化缓存 在webpack配置中使用...cache选项 使用package.json “postinstall” 清除缓存目录 将cache类型设置为内存或者文件系统 memory 选项很简单 它告诉webpack在内存存储缓存 cache...webpack watch mode 监听过多导致cpu负载 可用watchOptions.poll来增加轮询时间间隔 在内存编译 webpack-dev-server webpack-hot-middleware...增量编译 多数情况为 eval-cheap-module-source-map 避免使用生产环境工具 比如 TerserPlugin 压缩和混淆 [fullhash]/[chunkhasn]/[contenthash

1.8K20

4-10 webpack 与浏览器缓存(caching)

1.简介 浏览器在加载资源,为了提高效率,会使用一定缓存策略,比如强缓存,与协商缓存,那么如何保证在资源发布以后浏览器能拿到最新资源而不是缓存呢?...image.png 其实 dist 资源已经更新了,但是浏览器发出资源请求名称并没有改变,在访问我们服务器资源,就会直接读取缓存,我们试着在改变 index.js,可以发现访问 webstorm...image.png 发现 idnex 由于内容更新,导致 hash 更新,重服务器获取了新资源,而 verndors~index 则还是原来 hash,所以从缓存直接读取。 5....小结 实际开发,devserver 已经默认开启协商缓存,开发其实不大必要设置 contenthash,但是在生产环境还是应该使用该占位符来标识资源。...参考 浏览器协商缓存与强缓存 https://webpack.js.org/configuration/output/#outputfilename https://webpack.js.org/

70430

HTML5类jQuery选择器querySelector使用

简介 HTML5向Web API新引入了document.querySelector以及document.querySelectorAll两个方法用来更方便地从DOM选取元素,功能类似于jQuery选择器...用法 两个方法使用差不多语法,都是接收一个字符串参数,这个参数需要是合法CSS选择语法。...elements = document.querySelectorAll('div.foo');//返回所有带foo类样式div 但需要注意是返回nodeList集合元素是非实时(no-live...原因就在于反斜杠在字符串本身就表示转义意思,它于冒号结合转不出东西来,于是抛错。...也就是说经历两次转义,一次是字符串当中,一次是querySelector解析参数。 理解这点后,可以来看一个更有趣例子了。比如我们要选择类名里面含反斜杠元素。是的,我们需要一共使用四个反斜杠!

3.2K70

webpack5学习笔记

webpack5学习笔记 看是b站千峰教育视频 感觉很不错 千峰课程视频 cdn资源 cdn资源 webpack官网 webpack插件 webpack笔记 解决作用域问题 快速执行函数 ;(function.../, type: 'json', parser: { parse: json5.parse } } 使用文件 babel-loader 将es6转化为es5 babel-loader:在webpack...:false 小即快 使用更少或者更小library 在多页面应用使用splitChunksPlugin 并且开启async 移除未引用代码 只编译当前正在开发代码 持久化缓存 在webpack配置中使用...cache选项 使用package.json "postinstall" 清除缓存目录 将cache类型设置为内存或者文件系统 memory 选项很简单 它告诉webpack在内存存储缓存 cache...webpack watch mode 监听过多导致cpu负载 可用watchOptions.poll来增加轮询时间间隔 在内存编译 webpack-dev-server webpack-hot-middleware

2.5K40

webpack 中最易混淆 5 个知识点

这几个名词其实都是 webpack 魔法注释(magic comments)[5]里,文档说了 6 个配置,配置都可以组合起来用。我们说说最常用三个配置。...在我们业务代码,不可能只异步加载一个文件,所以写死肯定是不行,但是写成 [name].bundle.js ,打包文件又是意义不明、辨识度不高 chunk id。...4.hash、chunkhash、contenthash 有什么不同? 首先来个背景介绍,哈希一般是结合 CDN 缓存来使用。...如果文件内容改变的话,那么对应文件哈希值也会改变,对应 HTML 引用 URL 地址也会改变,触发 CDN 服务器从服务器上拉取对应数据,进而更新本地缓存。...,啥都有,就因为啥都有可能会让 webpack 构建时间变长,看情况使用

1.6K50
领券