2009-06-24 19 views
5

Có cách nào để xác định hoặc buộc tệp CSS được lưu vào bộ nhớ cache nếu người dùng đang điều hành một tệp cũ không?Force CSS Recache

Trả lời

13

Cách chắc chắn nhất để đảm bảo rằng mọi người tải lại tệp mới của bạn là thay đổi URL của nó. Một cách hợp lý để làm điều này mà không thực sự đổi tên nó là để tack trên một chuỗi ngẫu nhiên:

<link rel='stylesheet' href='/mystyles.css?random=87365835'> 

Đó là sử dụng một cái búa tạ để crack một hạt, và bỏ qua tất cả các cơ chế HTTP mà tồn tại để làm điều này, nhưng nó sẽ hoàn toàn làm việc ở khắp mọi nơi, trong khi các kỹ thuật khác đều phải cẩn thận.

Chỉnh sửa: @jitter: Bạn không phải thay đổi URL tự động cho mọi yêu cầu - bạn có thể đặt nó trên dấu thời gian của tệp CSS hoặc thậm chí chỉ thay đổi bằng tay khi bạn muốn đảm bảo CSS được tải lại.

+0

đây là một cách tiếp cận phổ biến - xem thêm http://stackoverflow.com/questions/438821/what-does-do-in-a-css-link –

+0

nhưng điều này đặt tải nặng trên máy chủ của bạn lúc này khách hàng tải css everytime như? random = xxx là differnet mọi lúc. Vì các trình duyệt không được phép lưu các url bằng các biến (mặc dù IE và FF thực hiện) – jitter

+0

Điều đó không có nghĩa là phải làm việc. Trình duyệt hiểu URL và không nên lưu bộ nhớ cache? Asdasd = adssad. – jitter

2

Kiểm tra giải pháp này thay vì sử dụng xx.css? Rand = 213213213

What is an elegant way to force browsers to reload cached CSS/JS files?

Hoặc google cho "tự động phiên bản" cộng thêm javascript hoặc css. Hoặc "phiên bản nội dung tự động"

Phương thức này sử dụng phương pháp tự động thay đổi đường dẫn của phần URL bằng cách thêm các biến nhận.