Ekspres ile yapılmış bir web sitesini yeniden yüklediğimde, NodeJS sunucusu bana bir 304 durum kodu gönderdiği için Safari ile (Chrome ile değil) boş bir sayfa alıyorum.
Bu nasıl çözülür?
Tabii ki, bu sadece Safari'nin bir sorunu olabilir, ancak aslında diğer tüm web sitelerinde iyi çalışıyor, bu yüzden NodeJS sunucumda da bir sorun olmalı.
Sayfaları oluşturmak için Jade kullanıyorum res.render
.
Güncelleme: Bu sorun, Safari 'cache-control': 'max-age=0'
yeniden yüklendiğinde gönderdiği için oluşuyor gibi görünüyor .
Güncelleme 2: Şimdi bir çözümüm var, ancak daha iyi bir çözüm var mı? Çözüm:
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…
}
Güncelleme 3: Yani kodun tamamı şu anda:
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);
}
}