我服务的背景图片相当大,我想让它永久缓存。我想我应该发送一个最大年龄为无穷大的缓存头。我怎样才能以干净和正确的方式做到这一点。我正在使用express(开箱即用)并且没有任何缓存模块。
答案 0 :(得分:5)
您可以设置一个中间件处理程序,它可以匹配静态背景图像的路径,然后设置一个缓存控制头。这将为您的图像设置缓存控制标头,但不为其他静态资源设置。
app.configure(function(){
app.use(function(req, res, next) {
var matchUrl = '/background.jpg';
if(req.url.substring(0, matchUrl.length) === matchUrl) {
res.setHeader("Cache-Control", "max-age=31556926");
}
return next();
});
app.use(express.static(path.join(application_root, "StaticPages")));
app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});
订单很重要。您的中间件函数需要在express.static
处理程序之前排成一行。
答案 1 :(得分:1)
我认为更好的方法是缩小图像,然后使用像Diet JPEG(OS X)这样的程序来最小化文件大小。