ani*_*vas 3 http-caching node.js express
我使用express设置了一个简单的静态服务器.
var location = path.join(__dirname, 'public');
app.use(express.static(location, { cacheControl: true, setHeaders: function(res, path) {
res.setHeader("Cache-Control","max-age=0,must-revalidate");
} }));
Run Code Online (Sandbox Code Playgroud)
请求头与发送If-None-Match,并If-Modififed-Since和我还可以看到304 Not Modified在Chrome中回应,如果我重新加载页面,而无需修改文件.200 OK如果我修改其中一个文件,我会得到一个.
但为什么我的Chrome网络标签显示下载文件的大小而不是说(from memory cache)状态代码是304 Not Modified什么时候?
我期待文件从缓存中加载,如果它没有被修改并且如果被修改则从服务器提供.
感谢任何帮助和指导.
man*_*nak 12
@sBanda很好地描述了这种情况.由于指定的cache-control策略将文件声明为陈旧,因此预期接收304 ,但ETag检查显示它没有更改.你得到了304,因为你可能没有请求特定的资源,但你做了,浪费了带宽和CPU负载.
你应该做些什么来避免它是这样的:
const express = require('express');
const server = express();
const oneHour = 3600000; // 3600000msec == 1hour
server.use(express.static('www', { maxAge: oneHour })); // Client-side file caching
server.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
server.listen(8080);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8177 次 |
| 最近记录: |