2012-02-27 12 views
7

मैं नोड.जेएस/एक्सप्रेस के लिए काफी नया हूं, लेकिन मुझे लगता है कि मैं धीरे-धीरे इसे लटक रहा हूं।नोड.जेएस/एक्सप्रेस कैशिंग

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

क्रोम के कैश में एक झलक पता चलता है कि, हाँ, सब कुछ कैश कर रहा है: मैं इस कोड है, जो मैं क्या बता सकता से बहुत मानक प्रतीत हो रहा है जोड़ दिया है। हुर्रे! लेकिन जब मैं अपनी साइट पर क्रोम के ऑडिट चलाता हूं (और, मैंने देखा है, अन्य नोड-संचालित साइटों पर), क्रोम कहता है कि साइट कुछ भी कैशिंग नहीं कर रही है। इस विसंगति का कारण क्या हो सकता है?

+1

क्या आपने इसे चलाने से पहले अपने पर्यावरण को 'उत्पादन' के साथ सेट किया था? – EhevuTov

+0

हां, नोडजित्सु के साथ चल रहा है जो स्वचालित रूप से 'उत्पादन' को डिफ़ॉल्ट रूप से उपयोग करता है। इसे उत्पादन मोड में स्थानीय रूप से चलाने से सभी संसाधनों पर हेडर अधिकतम-आयु = 0 उत्पन्न होता है। ऐसा लगता है कि क्रोम सिर्फ सुरक्षित होने के लिए कैशिंग है, क्योंकि इंस्पेक्टर कैश में कुछ भी नहीं दिखाता है। – JacobEvelyn

उत्तर

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

ऊपर कोड निष्पादित, और एक test.html पृष्ठ/सार्वजनिक निर्देशिका में निहित है और एक परीक्षण छवि है, वहाँ नेविगेट मेरा पीछा प्रतिक्रिया हेडर देता है और क्रोम ऑडिट मेरे पीसी (क्रोम 17.0 पर बस ठीक है। 963.83, लिनक्स, नोड 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 
+1

तो मैं मूर्ख हूं ... मैं अपने अनुरोध के कैश-कंट्रोल हेडर को देख रहा था, न कि प्रतिक्रिया। लेकिन मुझे अभी भी क्रोम ऑडिट के साथ समस्याएं हैं ... जब मैं इसे स्थानीय रूप से उत्पादन मोड में चलाता हूं, तो सब कुछ ठीक है: कैश-कंट्रोल हेडर का सही और क्रोम ऑडिट शिकायत नहीं करता है। जब मैं नोडजित्सु को तैनात करता हूं, हालांकि, कैश-कंट्रोल अभी भी सही है (जिसका अर्थ है कि यह उत्पादन मोड का उपयोग करना चाहिए) लेकिन अब क्रोम के ऑडिट का कहना है कि कुछ भी कैशिंग नहीं है। – JacobEvelyn

संबंधित मुद्दे