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

Nodejs Express框架缓存

运维笔记admin12浏览0评论

Nodejs Express框架缓存

Nodejs Express框架缓存

我正在使用Nodejs和Express Js。我还将NowJS添加到Express Js中来做一些实时的东西。

在我的配置文件中

app.configure('production', function() {
var oneYear = 31557600000;
app.use(express.static(__dirname + '/public', { maxAge: oneYear }));
app.use(express.errorHandler());});

我使用此命令运行应用程序:

$ NODE_ENV=production node app.js

但是,文件(图像,css,js)似乎不会被缓存,它们总是作为新文件提供。

P / s:我刚刚使用localhost对其进行了测试,缓存似乎可以在localhost上运行,但是,当上传到服务器时,缓存不再工作了。

回答如下:

Express建立在Connect之上,Connect提供“静态”中间件。这是缓存引擎盖下的代码:

if (!res.getHeader('Cache-Control')) res.setHeader('Cache-Control', 'public, max-age=' + (maxAge / 1000));

你可以在这里找到代码:

https://github/senchalabs/connect/blob/master/lib/middleware/static.js#L147

因此,您可以看到Express正在向浏览器发送“Cache-Control”标头,告诉他将该文件缓存一段时间。所以这不是“一次加载一个文件,然后总是将其提供给所有客户端”,而是更多的是“告诉每个客户端在第一次下载文件时缓存该文件”(这意味着所有客户端都必须下载)该文件在缓存之前一次)。

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论