webpack - 浏览器如何请求哈希文件名
问题描述
我是Web开发的初学者。在一个项目中,我看到构建了资产文件并更改了它们的名称 - 一个哈希字符串附加到它们的名称。我知道某些捆绑程序会发挥这种作用,但我不明白浏览器如何知道它们的“新”名称。例如,如果我在 index.js 文件中<script src="/main.js"...>
,并且在构建后它main.js
变成了一个main-ad466ef6367...js
,那么这个脚本标签应该相应地更改,新名称对吗?
解决方案
你的假设是正确的。发送到浏览器的 HTML 应该具有指向 js、css 和其他资产的正确链接。如果您使用html webpack 插件来生成您的 html,它可以将散列链接内嵌到您的资产开箱即用。如果你只使用 webpack 来打包你的资产,你可以使用manifest 插件来生成一个manifest.json
文件,该文件将包含你的资产的对象映射,即
{
"main.js": "/main-4kj5h62.js",
"style.css": "/style-k67bv2.css",
"logo.svg": "/logo-m2vb456.svg"
}
您可以在您的服务器应用程序中引用此文件,以将正确的链接内联到您的资产。
推荐阅读
- java - 如何下载/解压缩一长串文件并在 Java 中处理每个文件
- angular - 为什么 mdc-top-app-bar 不显示正确的 MDC
- python - 如何在每个 tkinter.text 输入上播放声音样本?
- javascript - 在tippy.js 中获取正确的“this”值
- grafana - 在 Grafana 中是否可以使用带有 JSON 字段的源数据表从该字段获取属性?
- python-3.x - 比较 base64 中相同的序列化 matplotlib 图会产生错误。如何仅使用序列化数据正确比较它们?
- c# - 如何使用 Visual Studio 将 ASP.NET Web 应用程序(.Net Framework)发布到 FTP 服务器?
- java - Apache httpclient 不支持使用 setProxy 的代理设置
- azure-devops - 跨仓库分支策略管理权限?
- javascript - 输入只允许数字、一个点和两个小数位