Express未设置max-age标头

时间:2013-03-22 18:52:03

标签: node.js caching express

我花了一个多小时试图让express来缓存生产中的静态文件。有什么我做错了吗?所有标头在第一个请求时返回200,在后续请求中返回304。我甚至尝试将代码粘贴到主app.configure并直接从快速文档中粘贴代码。

Request URL:http://localhost:3000/javascripts/jquery.min.js
Request Method:GET
Status Code:304 Not Modified
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Cache-Control:max-age=0


// Generated by CoffeeScript 1.3.3
(function() {
  var app, express, fs, http, path;

  express = require('express');
  http = require('http');
  path = require('path');
  fs = require('fs');

  app = express();

  app.configure(function() {
    app.set('port', process.env.PORT || 3000);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.compress());
    return app.use(require('less-middleware')({
      src: __dirname + '/public'
    }));
  });

  app.configure('development', function() {
    app.use(express["static"](__dirname + '/public'));
    app.use(app.router);
    app.use(express.errorHandler());
    return console.log("Hello from dev");
  });

  app.configure('production', function() {
    app.use(express["static"](__dirname + '/public', {maxAge: 1800}));
    app.use(app.router);
    return console.log("Hello from prod");
  });

  app.get('/', function(req, res) {
  .......

1 个答案:

答案 0 :(得分:4)

maxAge是一个以毫秒为单位的值,在您的情况下看起来很低(1800,即1.8s)。在您有机会重新加载资源之前,资源可能会从缓存中过期,因此它们似乎永远不会被缓存。