Tomcat önbelleğe almayı nasıl devre dışı bırakırım? Tuhaf statik dosya sorunları yaşıyorum


26

Tomcat'in önbelleğe alınmasını nasıl önlerim? Ajax ile yüklediğim ve kullandığım css ve basic html dosyalarım var ve tomcat'ı yeniden başlatmadığım sürece değişiklikler yansıtmıyor gibi görünüyor. Farklı makineler, farklı tarayıcılar ve güncellenen dosyaları alamıyorum.

Düşünceler?

Yanıtlar:


21

CachingAllowed bayrağını değiştirdikten sonra / work / Catalina / localhost içindeki uygulama önbellek klasörünü silmeniz gerekebilir.

Yapılandırma server.xml dosyasına şu şekilde tanıtılabilir:

<Context className="org.apache.catalina.core.StandardContext"
                 cachingAllowed="false"
                 charsetMapperClass="org.apache.catalina.util.CharsetMapper"
                 cookies="true" 
                 reloadable="false" 
                 wrapperClass="org.apache.catalina.core.StandardWrapper">
        </Context>

2
+1 Özgün cevabımda bundan bahsetmeyi tamamen unuttum. Teşekkürler!
KPWINC

2
LOL ... aşk nerede?
KPWINC

4
chachingAllowedEtiketi nerede değiştiririm ?
kajacx

1
Başlatırken Tomcat 8 bir uyarı var: özelliğin ayarlanması cachingAllowediçin falseeşleşen bir özelliği bulamadık.
naXa 28:15

4
Bu cevap artık okuyan herkes için çok eski ve artık gerçekten doğru değil (Tomcat 5+ için)
Amalgovinus

14

Tomcat 8 / Tomcat 9 için conf / context.xml dosyasına aşağıdaki gibi özellikler eklenmelidir.

<Context>
  <Resources antiResourceLocking="false" cachingAllowed="false" />
  ...
</Context>

cachingAllowedBayrağı değiştirdikten sonra / work / Catalina / localhost içindeki uygulama önbellek klasörünü silmeniz gerekebilir . Ayrıca IntelliJ IDEA'nın önbelleğini de temizleyin (Tomcat'ı çalıştırmak için kullanıyorsanız):

Mac: / Kullanıcılar / {: kullanıcı} / Kütüphane / Önbellekler / IntelliJIdea {: version} / tomcat /  
Linux: /home/{:user nt /.IntelliJIdea{ :version / / system / tomcat/
Windows: C: \ Kullanıcılar \ {: kullanıcı} \. IntelliJIdea {: version} \ system \ tomcat \

Bkz Apache Tomcat 9 Yapılandırma Başvurusu Diğer parametreler için.


2
<Resources> 'da antiResourceLocking
Etiket

Bu da ya Tomcat 7 için doğru değil. "AntiResourceLocking" özelliğini "false" olarak ayarlamak eşleşen bir özellik bulamadı. " ... "'cachingAllowed' özelliğini" false "olarak ayarlamak eşleşen bir özellik bulamadı."
Amalgovinus


@Amalgovinus sorununuzu çözdünüz mü? Tomcat7'de de aynı problemim var, sen ne yaptın?
Aaron,


13

Tomcat 7'de bu sorunu yaşadım ve bunun nedeni, AntiResourceLocking özelliğini true olarak ayarlamamdı (iyi bir fikir gibi geldi ...).

Dokümanlara göre ( http://tomcat.apache.org/tomcat-7.0-doc/config/context.html ):

Lütfen bunu true olarak ayarlamanın çalışan bir sunucuda JSP yeniden yüklemesinin devre dışı bırakılması dahil olmak üzere bazı yan etkileri olduğunu unutmayın: bkz. Bugzilla 37668.

Benim durumumda bile düz statik metin dosyalarının önbelleğe alınmasına neden oldu.

Dolayısıyla, özet olarak, en azından hızlı gelişim için kullanmak zorunda kaldım:

antiResourceLocking="false"
cachingAllowed="false"

Bunu tam olarak nereye eklerim? Conf / context.xml dosyasını kullanırsam bana her biri için "eşleşen bir özellik bulamadım" veriyor ...
Aaron

1
Bağlam öğesinin öznitelikleri olarak.
Reto Höhener

4

Bu belgeyi kontrol ettin mi: Apache Tomcat Yapılandırma Referansı ?

cacheMaxSize- Statik kaynak önbelleğinin kilobayt cinsinden maksimum boyutu. Belirtilmezse, varsayılan değer 10240'tır (10 megabayt).

cacheTTL- Önbellek girişlerinin yeniden validasyonu arasındaki milisaniye cinsinden süre. Belirtilmezse, varsayılan değer 5000'dir (5 saniye).

cachingAllowed- Bu bayrağın değeri doğruysa, statik kaynaklar için önbellek kullanılacaktır. Belirtilmezse, bayrağın varsayılan değeri doğrudur.

Bu parametreler Tomcat 5.5 ve Tomcat 6.0 için aynıdır.


Appcontext.xml dosyasında cachingAllowed değerini false ve cacheTTL değerini 1000 olarak ayarlıyorum ve STILL dosya önbelleğe almıyor. Daha da kötüsü, tomcat yeniden başlatmaları arasında önbellekleme yapıyor.
Stefan Kendall

O zaman tarayıcı önbelleğinden
gelmeli
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.