2010-01-28 35 views
5

Tôi đang gặp sự cố với trang web hiện đang hoạt động.Tôi làm cách nào để tắt hoàn toàn bộ nhớ đệm Tomcat?

Chúng tôi đang cố gắng để làm cho facebook kết nối ý kiến ​​phụ tùng. Tiện ích tải mỗi khi chúng tôi thực hiện yêu cầu mới phản hồi trạng thái 200 OK. Nhưng khi nó trở lại với một 304 Not Modified các widget sẽ không tải.

Tất cả chỉ ra vấn đề về bộ nhớ đệm. Tôi đã thử thay đổi context.xml

<Context cachingAllowed="false"> 

Điều này dường như không hoạt động. Có lời khuyên nào không?

Trả lời

0

Có vẻ như sự cố xảy ra ở bộ nhớ cache của trình duyệt máy khách, hãy thử thêm một số ngẫu nhiên vào yêu cầu của bạn. như __rnd__= Math.random()

15

Điều này dường như không hoạt động. Có lời khuyên nào không?

Các cachingAllowed thuộc tính thực cấu hình bộ nhớ đệm phía máy chủ, không phải là client-side caching như bạn dường như mong đợi.

Bộ nhớ đệm phía máy khách phải được thực hiện với các tiêu đề phản hồi thích hợp. Để hoàn toàn vô hiệu hóa client-side caching trên các nguồn lực cụ thể, bạn cần phải tạo ra một Filter mà lắng nghe trên mong muốn url-pattern và có ít nhất những dòng sau bên trong doFilter() phương pháp:

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
response.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
response.setDateHeader("Expires", 0); // Proxies. 

Các response là ở đây bằng cách này các HttpServletResponse được đúc lại từ đối số ServletResponse thứ hai của phương pháp doFilter().

Đừng quên xóa bộ nhớ cache phía máy khách (do đó, bên trong cấu hình webbrowser) trước khi thử nghiệm tất cả này :)

Các vấn đề liên quan