जब मैं एक्सप्रेस के साथ बनाई गई वेबसाइट को फिर से लोड करता हूं, तो मुझे सफारी (क्रोम के साथ नहीं) के साथ एक खाली पृष्ठ मिलता है क्योंकि NodeJS सर्वर मुझे 304 स्थिति कोड भेजता है।
इसे कैसे हल करें?
बेशक, यह सिर्फ सफारी की समस्या हो सकती है, लेकिन वास्तव में यह अन्य सभी वेबसाइटों पर ठीक काम करती है, इसलिए इसे मेरे NodeJS सर्वर पर भी समस्या होना चाहिए।
पृष्ठों को उत्पन्न करने के लिए, मैं जेड का उपयोग कर रहा हूं res.render
।
अद्यतन: ऐसा लगता है कि यह समस्या इसलिए होती है क्योंकि सफारी 'cache-control': 'max-age=0'
पुनः लोड पर भेजता है।
अद्यतन 2: मेरे पास अब वर्कअराउंड है, लेकिन क्या इसका बेहतर समाधान है? युक्ति:
app.get('/:language(' + content.languageSelector + ')/:page', function (req, res)
{
// Disable caching for content files
res.header("Cache-Control", "no-cache, no-store, must-revalidate");
res.header("Pragma", "no-cache");
res.header("Expires", 0);
// rendering stuff here…
}
अद्यतन 3: तो वर्तमान में पूरा कोड हिस्सा है:
app.get('/:language(' + content.languageSelector + ')/:page', pageHandle);
function pageHandle (req, res)
{
var language = req.params.language;
var thisPage = content.getPage(req.params.page, language);
if (thisPage)
{
// Disable caching for content files
res.header("Cache-Control", "no-cache, no-store, must-revalidate");
res.header("Pragma", "no-cache");
res.header("Expires", 0);
res.render(thisPage.file + '_' + language, {
thisPage : thisPage,
language: language,
languages: content.languages,
navigation: content.navigation,
footerNavigation: content.footerNavigation,
currentYear: new Date().getFullYear()
});
}
else
{
error404Handling(req, res);
}
}