我正在寻找工具(和技术)来帮助对我的 HandlebarsJS 模板中的静态资产(CSS、JS、图像等)URL 进行版本控制。这适用于使用 并在 Windowsexpress
下运行的 Node.js Web 应用程序。iisnode
出于性能原因,我希望 IIS 直接提供静态资产——而不是为这个管道使用 Node 或其他连接中间件。
根据我过去的做法(使用经典 ASP),我目前的想法如下:
- 编写一个将资产名称作为输入的 HandlebarsJS 助手。然后,帮助程序将获取该资产的正确版本(时间戳、校验和等)(可能通过查看预先生成的 JSON 对象),并返回要呈现到模板输出中的资产的正确版本化路径。
- 例如:
{{asset 'images/button.png'}}
-->//sc.domain.com/images/<version#>/button.png
- 例如:
- 使用 Grunt 构建一个文件,其中包含将资产名称映射到版本的 JSON 对象。然后 HandlebarsJS 助手将使用它来构建 URL。
- 让 IIS 重写传入的 URL 以删除版本#,这样就无需在磁盘上实际复制/版本文件名(我们的站点不需要同时在同一文件名下存在多个版本的资产)。
从理论上讲,这对我的目的来说应该是完美的。但是,在我深入研究并编写所有这些基础架构之前,我想看看是否有人知道 a) 这些项目是否已经存在于某个地方,以及 b) 是否有其他方法更适合 HandlebarsJS?