我花了一个多小时试图让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) {
.......
答案 0 :(得分:4)
maxAge
是一个以毫秒为单位的值,在您的情况下看起来很低(1800,即1.8s)。在您有机会重新加载资源之前,资源可能会从缓存中过期,因此它们似乎永远不会被缓存。