【问题标题】:How can I make express do checksum-based caching?我怎样才能快速做基于校验和的缓存?
【发布时间】:2015-03-12 14:52:44
【问题描述】:

我知道 Express 的 maxAge 静态内容指令:

app.use(express.static(__dirname + '/public', { maxAge: 86400000 }));

但是我想建立一个系统:

  • 浏览器缓存任何未更改的资源
  • 浏览器获取已更改资源的最新版本

我知道这通常使用校验和来完成,即:为所有资源提供校验和作为其 URL 的一部分。旧 URL 被永久缓存,新内容意味着新 URL。

如何在 express 中进行设置?

【问题讨论】:

  • 这不是基于香草“Last-Modified”标头的缓存吗?

标签: javascript node.js http caching express


【解决方案1】:

一些研究表明,这称为指纹识别。请参阅http://guides.rubyonrails.org/asset_pipeline.html#what-is-fingerprinting-and-why-should-i-care-questionmark(该文档适用于 Rails,但 HTTP 概念当然与节点相同)。

Node Static Asset 这样做是为了表达。

var staticAsset = require('static-asset');
app.use(staticAsset(__dirname + "/public/") );

然后在模板中:

<script src="{{ assetFingerprint("/client.js") }}"></script>

还有Static Expiry,其工作方式类似。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 2020-07-08
    • 2022-08-19
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多