Bagaimana cara menonaktifkan caching kucing jantan? Saya mengalami masalah file statis yang aneh

26

Bagaimana cara mencegah kucing jantan dari caching? Saya memiliki file css dan html dasar yang saya muat dan gunakan melalui ajax, dan kecuali saya me-restart tomcat, perubahan tampaknya tidak mencerminkan. Mesin yang berbeda, browser yang berbeda, dan saya tidak menerima file yang diperbarui.

Pikiran?

Stefan Kendall
sumber

Jawaban:

21

Anda mungkin harus menghapus folder cache aplikasi di / work / Catalina / localhost setelah mengubah flag cachingAllowed.

Konfigurasi dapat diperkenalkan di server.xml sebagai

<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>
Adam Brand
sumber
2
+1 Saya benar-benar lupa menyebutkan itu dalam jawaban asli saya. Terima kasih!
KPWINC
2
LOL ... di mana cintanya?
KPWINC
4
Di mana saya mengubah chachingAllowedtag?
kajacx
1
Mendapat peringatan dari Tomcat 8 saat memulai: Mengatur properti cachingAllowedagar falsetidak menemukan properti yang cocok.
naXa
4
Jawaban ini sekarang sangat ketinggalan zaman, bagi siapa pun yang membaca, dan tidak lagi benar-benar benar (untuk Tomcat 5+)
Amalgovinus
14

Untuk Tomcat 8 / Tomcat 9 properti harus ditambahkan di conf / context.xml sebagai berikut

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

Anda mungkin harus menghapus folder cache aplikasi di / work / Catalina / localhost setelah mengubah cachingAllowedflag. Kosongkan juga cache IntelliJ IDEA (jika Anda menggunakannya untuk menjalankan Tomcat):

Mac: / Users / {: user} / Library / Caches / IntelliJIdea {: version} / tomcat /  
Linux: /home/{:user}/.IntelliJIdea{:version}/system/tomcat/
Windows: C: \ Users \ {: user} \. IntelliJIdea {: version} \ system \ tomcat \

Lihat Referensi Konfigurasi Apache Tomcat 9 untuk parameter lainnya.

naXa
sumber
2
antiResourceLocking pada <Resources> -Tag secara definitif salah untuk tomcat 8
pscheit
Ini juga tidak benar untuk kucing jantan 7. "Mengatur properti 'antiResourceLocking' ke 'false' tidak menemukan properti yang cocok." ... "Mengatur properti 'cachingDijinkan' ke 'false' tidak menemukan properti yang cocok."
Amalgovinus
@Amalgovinus untuk Tomcat 7 lihat jawaban Zalumon .
naXa
@Amalgovinus apakah Anda menyelesaikan masalah Anda? Saya memiliki masalah yang sama di tomcat7, apa yang Anda lakukan?
Aaron
Saya tidak pernah mendapatkan properti untuk bekerja .. tapi saya cukup yakin cache saya adalah masalah penyebaran yang tidak terkait :( kesalahan pengguna
Amalgovinus
13

Saya punya masalah ini di Tomcat 7 dan alasannya adalah saya memiliki set antiResourceLocking menjadi true (kedengarannya seperti ide yang bagus ...).

Menurut dokumen ( http://tomcat.apache.org/tomcat-7.0-doc/config/context.html ):

Harap perhatikan bahwa menyetel ini ke true memiliki beberapa efek samping, termasuk penonaktifan reload JSP di server yang sedang berjalan: lihat Bugzilla 37668.

Dalam kasus saya itu bahkan menyebabkan file teks statis biasa di-cache.

Jadi, secara ringkas, setidaknya untuk pengembangan cepat saya harus menggunakan:

antiResourceLocking="false"
cachingAllowed="false"
Reto Höhener
sumber
Di mana tepatnya saya menambahkan ini? Jika saya meletakkan di conf / context.xml itu memberi saya "tidak menemukan properti yang cocok" untuk masing-masing ...
Aaron
1
Sebagai atribut dari elemen konteks.
Reto Höhener
4

Sudahkah Anda memeriksa dokumentasi ini: Referensi Konfigurasi Apache Tomcat ?

cacheMaxSize- Ukuran maksimum cache sumber daya statis dalam kilobyte. Jika tidak ditentukan, nilai standarnya adalah 10240 (10 megabita).

cacheTTL- Jumlah waktu dalam milidetik antara validasi entri cache. Jika tidak ditentukan, nilai default adalah 5000 (5 detik).

cachingAllowed- Jika nilai flag ini benar, cache untuk sumber daya statis akan digunakan. Jika tidak ditentukan, nilai default dari flag adalah true.

Parameter ini sama untuk Tomcat 5.5 dan Tomcat 6.0.

KPWINC
sumber
Saya mengatur cachingAllowed ke false dan cacheTTL ke 1000 di appcontext.xml saya, dan saya MASIH tidak bisa mendapatkan file untuk tidak cache. Lebih buruk lagi, itu caching di restart tomcat.
Stefan Kendall
Maka itu harus dari cache browser
lisak