Node.js / Экспресс-кеширование - PullRequest
7 голосов
/ 27 февраля 2012

Я довольно новичок в Node.js / Express, но, думаю, я постепенно осваиваюсь.Я добавил этот код, который из того, что я могу сказать, кажется довольно стандартным:

app.configure('production', function() {
    var oneYear = 31557600000;
    app.use(express.static(__dirname + '/public', { maxAge: oneYear }));
    app.use(express.errorHandler());
});

Просмотр в кэше Chrome показывает, что да, все кэшируется.Ура!Но когда я запускаю проверки Chrome на своем сайте (и, как я заметил, на других сайтах с поддержкой Node), Chrome говорит, что сайт ничего не кэширует.Что может вызвать это несоответствие?

1 Ответ

11 голосов
/ 24 марта 2012
var express = require('express');
var app = express.createServer();
var oneYear = 31557600000;
app.use(express.static(__dirname + '/public', { maxAge: oneYear }));
app.use(express.errorHandler());
app.get('/', function(req, res){
  res.send('hello world');
});
app.listen(3000);

Выполнение приведенного выше кода и переход на страницу test.html, которая находится в каталоге / public и содержит тестовое изображение, дает мне следующие заголовки ответа, и Chrome Audit прекрасно работает на моем ПК (Chrome 17.0.963.83, Linux, Узел 0.6.13, Экспресс последний). Вы должны дважды проверить, действительно ли он находится в производственном режиме.

Accept-Ranges:bytes
Cache-Control:public, max-age=31557600
Connection:keep-alive
Date:Fri, 23 Mar 2012 22:52:24 GMT
ETag:"120877-1278958150000"
Last-Modified:Mon, 12 Jul 2010 18:09:10 GMT
X-Powered-By:Express
...