2014-11-11 12 views
7

Một nền tảng nhỏ về ứng dụng mà tôi đang làm việc: Spring MVC, ứng dụng Web Java EE, Maven.Cơ chế chặn truy xuất bộ nhớ cache cho dự án Java/SpringMVC/Maven

Về cơ bản, những gì tôi đang tìm kiếm là một cơ chế để làm mới tất cả các tệp JS và CSS sau mỗi lần triển khai ứng dụng của chúng tôi. Vì nó đứng ngay bây giờ, ứng dụng đang tham chiếu các tệp tĩnh (ví dụ: "js/app.js"). Mỗi lần có thay đổi đối với tệp này, sau khi triển khai lại cục bộ, chúng tôi nhận được 304 khi trình duyệt tải xuống tệp đó (tệp chưa được sửa đổi). Câu hỏi của tôi là:

1) Sẽ tốt hơn khi phân phát lại các tệp này khi triển khai lại ứng dụng và sử dụng phiên bản ứng dụng làm cơ chế ngăn chặn bộ nhớ cache (ví dụ: "js/v1.0.0/app.js"). Điều này có thể được thực hiện thông qua một bộ lọc servlet.

2) Vì dự án là một dự án web động động, có một số loại plugin thực hiện điều này. Tôi đã xem xét wro4j để xem liệu nó có thể làm điều này, nhưng từ rất ít tôi đọc về nó, nó chủ yếu được sử dụng để xử lý việc rút gọn các JS và CSS, đó là một cái gì đó cũng rất hữu ích.

Cách tiếp cận phù hợp là gì? Cảm ơn trước

+1

bạn có thể sử dụng một chuỗi truy vấn như trong thực tế phổ biến cho CMS' như Drupal? URL ví dụ: path/to/file.js? 123456 URL ví dụ sau khi triển khai tiếp theo: path/to/file.js? 123456? [UNIX TIMESTAMP/RANDOM STRING/SOME VAR] – jonathanbell

+0

Yêu cầu tương tự này ngay bây giờ. Bạn đã làm gì cuối cùng @Kruiz – Neoryder

+0

Tôi đã sử dụng một ngăn xếp của Microsoft trong một thời gian dài. Tôi quan tâm đến việc tìm ra các phương pháp hay nhất để sắp xếp, rút ​​gọn và lưu trữ bộ nhớ cache ngay bây giờ mà tôi đang làm việc với một ngăn xếp Java, Spring và Tomcat. Tôi hiểu đây là một bài đăng cũ, nhưng bạn có thể chia sẻ các phát hiện của mình không? Cảm ơn! -V –

Trả lời

-1

bạn nên thêm các phiên bản với các nguồn lực tĩnh của bạn hoặc vô hiệu hóa bộ nhớ đệm trong trình duyệt

+0

Tắt bộ nhớ cache không thực sự thân thiện với người dùng. –

0

Tôi không biết về cách tiếp cận "đúng" nhưng là giải pháp phổ biến nhất là sử dụng phiên bản của các tập tin tĩnh ví dụ như ứng dụng .js sẽ trở thành ứng dụng 14gd54646rfw3.js số thường là một MD5 của nội dung như vậy, nó sẽ chỉ thay đổi khi các tập tin thay đổi

với mùa xuân bạn đạt được nó bằng cơ chế tích hợp như mô tả tại liên kết sau http://www.baeldung.com/cachable-static-assets-with-spring-mvc

nếu bạn muốn sử dụng Maven plugin với concatenating và rút gọn khả năng bạn có thể sử dụng một ngụm hoặc nhiệm vụ grunt như xây dựng các công cụ

bạn có thể tìm thêm thông tin ở đây https://css-tricks.com/strategies-for-cache-busting-css/

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