3

我提供的背景图像相当大,我希望将其永久缓存。我想我应该发送一个最大年龄为无穷大的缓存头。我怎样才能以干净和正确的方式做到这一点。我正在使用 express(开箱即用)并且没有任何缓存模块。

4

2 回答 2

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处理程序之前对齐。

于 2013-04-19T03:18:12.280 回答
1

我认为更好的方法是缩小图像,然后使用像 Diet JPEG (OS X) 这样的程序来最小化文件大小。

于 2013-04-19T03:09:31.187 回答