floş yapmayı reddetti Haftasonu programlamayı biraz April Fool'un şakasını geçirdim, ama henüz istediğim şekilde çalışmıyor.Nisan aptalın sinir bozucu tarayıcı önbelleği
Drupal 6 tabanlı bir web sitem var ve mümkün olduğunca az değişiklik yapmak istiyorum. Buradaki fikir,/files dizininden sunulan tüm görüntülerin, görüntüyü ters çeviren ve sonra tarayıcıya sunan harici bir web sunucusuna (myserver) yönlendirilmesidir.
Drupal web sitesini (HedefSunucu) diğer sunucuya görüntüler için tüm istekleri yeniden yönlendirmek yapmak için, aşağıdaki gibi bir .htaccess kurmak:
RewriteEngine On
RewriteBase/
RewriteCond %{HTTP_USER_AGENT} !^aprilFool$
RewriteRule ^(.*)$ http://myserver/aprilFool/?url=http://targetserver/files/$1 [R=302,L]
Ve şimdiye kadar o inşaat büyük! Her şeyi etkinleştirdiğimde, April Fool'un hilesi bazı görüntüleri değiştirir ve müşterinin tarayıcısında görüntülenir. Ben .htaccess @targetserver devre dışı bıraktığınızda
Ama benim tarayıcı sadece Düzenlenen görüntüleri :(İşte
myserver üzerinde Perl script bir sniplet olan/geçici şaka olmalı ve unutmak gerekiyordu gerçekleştirmek reddediyor aprilFool: komut ekstra bir başlık ekle- : print "Cache-Control: denedim
my $ua = LWP::UserAgent->new; # Identify ourselves through the useragent, to prevent endless redirect loops $ua->agent('aprilFool'); # Load remote file my $response = $ua->get($url); if ($response->is_error) { die "Cannot retrieve document $url\n"; } my $imageData = $response->content; # Determine the file's mime type, need that to determine if we want to change it or not my $ft = File::Type->new(); my $format = $ft->mime_type($imageData); # If the file is an image, flip it if ($format =~ m/^image\//) { my $image=Image::Magick->new; $image->BlobToImage($imageData); $image->Flip(); $imageData = $image->ImageToBlob(); } # Send HTTP headers print "Content-type:$format\r\n"; print "\r\n"; print $imageData;
başarılı olamadı aşağıdaki max-age = 36 \ r \ n "
- .htaccess @targetserver bir satır ekleyin: Başlık seti tmp-image.jpg çeşitli şekillerde, görüntüde image.jpg için "Mon 12 Mart 15:45:00 CET 2012"
- değiştirin adını sona eriyor. el tarayıcı önbelleği temizlemek kadar
@myserver .htaccess RewriteRule değiştirerek Ama HedefSunucu 304 gönderme tutar .htacces devre dışı bıraktıktan sonra jpg.tmp => 'Değiştirilmedi'.
Bu yüzden sorum şu: 1 Nisan'ı sadece bir gün, tercihen gece yarısına kadar nasıl yapabilirim ... Tarayıcıyı, şaka bittiğinde orijinal görüntüyü yeniden yüklemesi gerektiğini nasıl anlayabilirim?
Bunu yapmak istemiyorsunuz 'Mon Mar 12 2012 15:45:00 CET'. Varsayılanlar hakkında bir tartışma için http://blog.ellisons.org.uk/article-58 adresine bakın. Beklediğiniz gibi değiller :-) – TerryE
Expire üstbilgisini doğru zaman biçimi ile denediniz, ancak bu da işe yaramıyor. – jippie
Diğer yandan, önbellekte bulunan tüm dosyaları ve son kullanma tarihlerini/saatlerini temel olarak görüntüleyen Firefox'taki önbellek? Bu, Cache-Control üstbilgisinin * çalıştığını kanıtladı. Firefox'un görüntüyü sona erdirmesi için yeni/temiz bir sekme kullanmam gerekir. – jippie