最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Express JS

运维笔记admin9浏览0评论

Express JS

Express JS

我正在Express上运行应用程序,而我的浏览器会继续获取本应已缓存的文件。违规文件的状态码为304,大小始终为220 B / 221B。其他资源(正在正确提供服务的资源)显示为“(来自缓存)”。

更多信息:ETag /文件内容未更改,并且我设置了一些响应头。

    res.set('Cache-Control', 'max-age=345600');
    res.set('Expires', new Date(Date.now() + 345600000).toUTCString());

(来源:imageno)

诚然,我不是HTTP专家,但是也许有人可以帮助我了解为什么会这样吗?

回答如下:

本质上,浏览器正在缓存并提供缓存的包(尽管它不会显示“来自缓存”消息)。为了服务他们,它将请求发送到服务器并检查文件是否已更改。如果未更改,则服务器发送304响应代码,浏览器从缓存中提取文件。这大约需要15-50毫秒,因此对性能的影响不大。

但是,我可以强制浏览器显示文件而不发送验证请求(例如,外部托管的库)。这将需要在不久的将来设置expires / cache-control标头,对静态资产的文件名加上时间戳,并动态地提供它们(通过将更新的文件名写入配置文件或类似的东西),但是我认为这是麻烦多于诚实。

只需将遇到的问题发布给任何人,就可以发布此回复。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论