2011-11-30 37 views
5

Bir sayfa yapmak, bir CSS dosyası link o, ve bir tarayıcıda açın, iyi çalışıyor. Ancak bir değişiklik yapıp sayfayı çok kısa zaman dilimleri arasında yeniden yenilerseniz, değişiklik yansıtılmaz. Ancak bir süre sonra, sayfayı tekrar yenilediğimde, değişiklikler görünür.Tarayıcıları Önbelleğe Alma CSS Dosyaları Nasıl Önlenir?

Yani, bir şekilde tarayıcı CSS dosyası önbelleğe tutar ve bazen sonra sona erer. Tarayıcı önbelleği CSS veya HTML dosyası olmadan nasıl yapılır. Belirli bir alanda engelleyebiliyorsam daha iyi olur.

I CSS dosyaları önbelleğe tarayıcıların engellemeye çalışan, Chrome ve Firefox kullanarak, Ubuntu çıkıyorum 'localhost' ... Nasıl yapılacak ...

Teşekkür ...

cevap

4

Geliştirici Araçları'nı Ctrl+Shift+J tuşlarına basarak açabilir ve sağ altta bir dişli simgesini bulabilirsiniz. Tıkladığınızda, önbelleğe almayı devre dışı bırakmak için bir seçenek görmelisiniz.

+0

çalışmıyor. ve sadece kontrol ettim, google etkin mod_pagespeed modülüm var.sorun neden bu mu? teşekkürler ... –

+0

tamam, ben pagespeed kaldırıldı ve önbelleği devre dışı bırakmadan çalışır, ancak bu hala doğru bir yaklaşım gibi görünüyor. Bu cevabı kabul edildi olarak işaretleyeceğim ... teşekkürler ... –

+5

Herhangi bir cog görmüyorum. – doublejosh

1

Çoğu web sunucusunda bunu yapılandırabileceğiniz için, web sitesinin nasıl barındırıldığını bilmek yardımcı olacaktır.

Ayrıca, CSS dosyaları içeriğini değiştirdiğinizde söz konusu CSS dosyalarına bağlantılar değişiklik yapacağı bir önbellek bozma mekanizması tanıtmak için iyi bir fikirdir. HTML'ler farklı bir URL'ye başvurduğundan tarayıcılar CSS dosyasını yeniden yükler.

mekanizmasını bozma bir önbellek iyi bir örnek rayların üzerinde yakut olduğu da dosyaları küçültür ve tarayıcı bunları destekliyorsa onları gzips 3.1 varlık boru hattı: basit

Rails 3 - Asset Pipeline -- What does it mean to me?

http://2beards.net/2011/11/the-rails-3-asset-pipeline-in-about-5-minutes/

3

Something Bu çalışması gerekir olarak:

<link rel="stylesheet" src="/css/screen.css?v={CURRENT_TIMESTAMP}"> 

Sadece {CURRENT_TIMESTAMP} espri yerine h Sunucu tarafı kodunuzdaki gerçek zaman damgası. Bu, tarayıcının sorgu dizesi nedeniyle yeni bir dosya olduğunu ve tekrar indirileceğini düşünmesini sağlar. Gereksiz indirmeleri engellemek için dosyanın gerçek değişiklik zamanını da (PHP kullanıyorsanız filemtime('/path/to/css/screen.css')) kullanabilirsiniz.

+0

, sayfa döndürme modülü nedeniyle çalışmıyor. '' ''den sonra ihmal etmeme izin verin, böylece sayfaları kaldırmayı ve tekrar denememe izin verin ... fikrin için teşekkürler ... doğada çok basit ve zarif ... –

0

görünüşte-inelegant ama kaya gibi sağlam bir yaklaşım bulunduğu öğeleri yeni bir isim, içerik değişikliğini vermektir. Bu, tüm kullanıcılar için sorunu çözer değil sadece:

<link rel="stylesheet" src="/css/screen_034.css"> 
<link rel="stylesheet" src="/css/screen_035.css"> 
<link rel="stylesheet" src="/css/screen_036.css"> 

Ya da belki (ancak bir IDE değiştirmek için bir ağrı daha var ve bazen önbelleğe alma ilgisiz sorunlara neden olmaktadır):

<link rel="stylesheet" src="/css/screen.css?pretend_version_number=034"> 

Büyük çaplı üretim ortamlarında, eski bir css dosyasının milyonlarca kopyasının çeşitli ara veya tarayıcı önbelleklerinde oturduğu başka hiçbir şey de pek işe yaramaz. Bazı istemciler önbellek denetimi üstbilgilerini yok sayıyor ve en azından üretimde değil, önbelleğe almayı gerçekten istemiyorsunuz.

gelişmede Ctrl + Shift + J (Krom) basın ve önbelleğe alma kapatabilirsiniz.

İlgili konular