原生前端, 你可曾见过如此优雅的版本更新 `<base href="/v1/">`

就像这样 <base href="/v1/"> 它将为网页上所有相对链接和资源定义一个基础 URL: 将所有 ./ 开头的所有路径解析为 /v1/ 而 / 开头的路径保持不变 这套规则对于 fetch 网络请求同样有效 并非每次更新都要重新创建一份版本目录, 我们可以仅将其作为前端用来更新资源的方法...
原生前端, 你可曾见过如此优雅的版本更新 `<base href="/v1/">`
原生前端, 你可曾见过如此优雅的版本更新 `<base href="/v1/">`

就像这样

<base href="/v1/">

它将为网页上所有相对链接和资源定义一个基础 URL:

  • 将所有 ./ 开头的所有路径解析为 /v1/
  • / 开头的路径保持不变
  • 这套规则对于 fetch 网络请求同样有效

并非每次更新都要重新创建一份版本目录, 我们可以仅将其作为前端用来更新资源的方法, 让后端配合将 /v[\d]+/ 映射到 / (并非重定向).

这样, 只需要更新一次 html 中的 base 路径, 就能完成整个前端的资源更新.

前端缓存控制

  • 对需要更新的代码文件, 使用 ./ 路径开头
  • 对无需更新的字体和图片, 使用 / 路径开头

后端缓存控制

  • 对 html 文件使用协商缓存来保证加载速度和更新及时性
  • 对所有资源文件使用强缓存来保证加载速度

在自己复杂的原生开发项目上研究了半天才想到的版本更新方法.


image

image

1 个帖子 - 1 位参与者

阅读完整话题

来源: linux.do查看原文