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

中国著名设计建筑seo有哪些网站

中国著名设计建筑,seo有哪些网站,大连企业网站模板建站,如何给网站添加网站地图文章目录 1. 动态哈希命名的基本思路2. 具体实现2.1 Vite/Webpack 配置动态哈希2.2 HTML 文件中动态引用手动引用使用 index.html 模板动态插入 2.3 结合 Cache-Control 避免缓存穿透2.4 适用于多环境的动态策略 总结 在多环境部署中,静态资源缓存穿透是一个常见问题…

文章目录

  • 1. 动态哈希命名的基本思路
  • 2. 具体实现
    • 2.1 Vite/Webpack 配置动态哈希
    • 2.2 HTML 文件中动态引用
      • 手动引用
      • 使用 index.html 模板动态插入
    • 2.3 结合 `Cache-Control` 避免缓存穿透
    • 2.4 适用于多环境的动态策略
  • 总结

在多环境部署中,静态资源缓存穿透是一个常见问题,尤其是当前端或后端的静态资源未正确更新,导致旧版本被意外加载。

对于这种问题,动态哈希命名策略是一种有效的解决方案,通过给资源文件添加哈希值来确保浏览器获取最新版本。注意,一般在打包工具的 production 生产模式下 build 后的产物都会自动使用哈希命名配置,无需手动配置。今天主要是介绍背后的实现原理,以下是具体的实现方式:

1. 动态哈希命名的基本思路

  • 在构建时,为静态资源(JS、CSS、图片等)文件名添加基于内容的哈希值(如 MD5、SHA-256)。
  • 在 HTML 或配置文件中,引用时使用带有哈希值的文件名,确保每次构建后的新文件名唯一,避免缓存问题。
  • 结合 Cache-Control 策略,让浏览器长时间缓存文件,只有当文件内容变更时才会重新下载。

2. 具体实现

2.1 Vite/Webpack 配置动态哈希

在 Vite(或 Webpack)中,可以通过 build.rollupOptions.outputoutput.filename 进行哈希处理:

Vite (vite.config.ts)

import { defineConfig } from 'vite';export default defineConfig({build: {assetsDir: 'assets',rollupOptions: {output: {entryFileNames: 'assets/[name].[hash].js',chunkFileNames: 'assets/[name].[hash].js',assetFileNames: 'assets/[name].[hash].[ext]',}}}
});

Webpack (webpack.config.js)

module.exports = {output: {filename: 'js/[name].[contenthash].js',chunkFilename: 'js/[name].[contenthash].js',},
};

这样,每次构建时,生成的 JS/CSS 文件都会带上基于内容的 hash,确保不同版本的文件不会相互覆盖。

2.2 HTML 文件中动态引用

手动引用

在 HTML 中,可以通过 <script><link> 直接引入带哈希的文件:

<script src="/assets/app.abc123.js"></script>

使用 index.html 模板动态插入

如果是 Vite,可以使用 vite-plugin-html 插件:

import { createHtmlPlugin } from 'vite-plugin-html';export default defineConfig({plugins: [createHtmlPlugin({inject: {data: {title: 'My App',},},}),],
});

index.html 中:

<script type="module" src="<%= htmlWebpackPlugin.files.js %>"></script>

2.3 结合 Cache-Control 避免缓存穿透

nginxCDN 服务器配置 Cache-Control,让静态资源长期缓存:

location /assets/ {expires max;add_header Cache-Control "public, immutable";
}

immutable 表示文件不会更改,即使 304 Not Modified 也不需要重新验证。

同时,确保 index.html 不被缓存,以便引用最新的哈希文件:

location / {expires -1;add_header Cache-Control "no-cache, must-revalidate";
}

2.4 适用于多环境的动态策略

vite.config.tswebpack.config.js 中,可以根据环境变量来控制 hash 策略:

const isProduction = process.env.NODE_ENV === 'production';export default defineConfig({build: {rollupOptions: {output: {entryFileNames: isProduction ? 'assets/[name].[hash].js' : 'assets/[name].js',},},},
});

这样,在 开发环境 中不会生成哈希,方便调试,而 生产环境 则启用哈希。

总结

  • 通过 文件名+哈希 方式,确保静态资源变更时不会被缓存拦截。
  • 配置 Nginx/CDNindex.html 不缓存,而 JS/CSS 采用长时间缓存。
  • Vite/Webpack 结合 环境变量 实现多环境适配。

这样就能有效解决缓存穿透问题,让前端资源在多环境部署时始终保持最新!

http://www.dtcms.com/wzjs/840133.html

相关文章:

  • 广告网址wordpress配置搜索引擎优化
  • 中国网站建设公司有哪些方面买到域名怎么做网站
  • 怎样怎样优化网站建设面试学校网站开发
  • 网页制作与网站管理东莞技术支持 骏域网站建设
  • 哪个网站seo做的最好三星做号网站
  • 济南网站建设与维护旅游网站建设毕业设计
  • 安利的网站谁做的浏览器打不开网页但能上网
  • 如何做网站描述ue4培训
  • 有没有做网页的兼职网站好一点网站建设公司
  • 医疗公司网站建设项目背景网站制作网站建
  • 中国石化工程建设公司网站第一模板网站上的模板怎么下载
  • 响应式网站 图片居中wordpress 正版插件吗
  • 江西建设工程质量管理网站小程序开发商
  • 做网站的报价wordpress内存缓存无插件
  • ui做网站实例山东住房与城乡建设网站
  • 2012服务器做网站app推广注册从哪里接单
  • 曲靖建设局网站广州专业网站改版
  • 2017流行的网站风格模板工
  • 免费建站系统免费网站入口网站免费进
  • 淄博网站设计公司做游戏模型参考的网站
  • 广州电商网站建设友情链接的作用有哪些
  • 电子创意设计网站合肥html5网站建设
  • 建设门户网站的目的和意义成都网站建设详细内容
  • 做网站前端用什么软件好常见的门户网站有哪些
  • 做cps要做什么类型的网站莱芜网络营销
  • 永嘉县住房和城乡规划建设局网站潍坊大型网站建设平台
  • 图片类网站欣赏房地产销售造林种养殖加工承揽项目开发等招商广告
  • 做网站aspwordpress插件 一键登录
  • 网站开发的开题报告模板云端智能建站系统
  • 做企业网站大概多少钱杭州十大电商公司排名