本文介绍如何基于 gorilla mux(可兼容 negroni)构建支持「带随机/哈希前缀」的静态资源 url(如 `/static/abc123/app.js`),并将请求透明映射到真实文件路径(如 `/build/app.js`),兼顾浏览器长期缓存与服务端可控性。
在现代 Web 开发中,为静态资源(JS、CSS、图片等)添加内容哈希(如 app.a1b2c3d4.js)是实现强缓存(Cache-Control: immutable, max-age=31536000)的关键实践。但有时受限于构建工具或部署流程,你可能需要将哈希“嵌入路径”而非文件名(例如 /static/f8a7e9b2/app.js),此时需服务端动态解析并安全地提供对应文件。
Gorilla Mux 提供了灵活的路由变量支持,配合自定义 http.Handler,即可优雅实现该需求。以下是一个生产就绪度较高的实现方案: