2012-02-27 32 views
7

Node.js/Express'te oldukça yeniyim, ama sanırım yavaş yavaş asılmaya başlıyorum.Node.js/Express Önbellekleme

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

Chrome'un önbelleğine bir gözetleme evet, her şey önbelleğe, ortaya koymaktadır: Ben oldukça standart olarak görünüyor Ne söyleyebilirim gelen bu kodu, ekledik. Yaşa! Ancak Chrome’un sitemdeki denetimlerini çalıştırdığımda (ve diğer Node tarafından desteklenen sitelerde farkettim), Chrome sitenin hiçbir şeyi önbelleğe almadığını söylüyor. Bu tutarsızlığa ne sebep olabilir?

+1

Çalıştırmadan önce ortamınızı 'üretim' ile ayarladınız mı? – EhevuTov

+0

Evet, varsayılan olarak 'üretim' özelliğini otomatik kullanan Nodejitsu ile çalışır. Üretim modunda yerel olarak çalıştırmak, tüm kaynaklarda max-age = 0 üstbilgisini üretir. Müfettiş önbellekte hiçbir şey göstermediği için Chrome'un sadece güvende olmasını öneriyor gibi görünüyor. – JacobEvelyn

cevap

11
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); 

yukarıdaki kodu yürütülmesi ve/kamu dizinde yatıyor ve bir test görüntüsü olan bir test.html sayfasına giderek bana şu yanıtı başlıklarını verir ve Chrome Denetim bilgisayarıma (Chrome 17.0 üzerinde gayet güzel. 963.83, Linux, Düğüm 0.6.13, Son Express). Gerçekten üretim modunda olup olmadığını iki kez kontrol etmelisiniz.

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 
+1

Yani ben bir aptalım ... İstekimin önbellek kontrol başlığına bakıyordum ve cevabı değil. Yine de Chrome denetimiyle ilgili sorunlarım var ... yerel olarak üretim modunda çalıştırdığımda, her şey yolunda: Önbellek Denetimi başlığının doğru ve Chrome denetimi şikayet etmiyor. Nodejitsu'ya dağıttığımda, Önbellek Denetimi hala doğrudur (bu, üretim modunu kullanması gerektiği anlamına gelir) ancak şimdi Chrome denetimleri hiçbir şeyin önbelleğe alınmadığını söyler. – JacobEvelyn

İlgili konular