2012-09-28 24 views
14

Có cách nào để đảm bảo rằng một hình nền nhất định được cập nhật gần đây không xuất hiện trong phiên bản cuối cùng trên trình duyệt của mọi người (thay vì phiên bản cũ được lưu trong bộ nhớ cache)?Bắt buộc làm mới hình nền

Nó phải là giải pháp không liên quan đến dòng mã gọi CSS (tôi có thể đặt dấu hỏi và số phiên bản sau tên tệp css, như: <link href="styles.css?v=2" rel="stylesheet" type="text/css"/>, nhưng trong trường hợp này tôi không có truy cập vào phần này của code)

Trả lời

22

Bạn có thể sử dụng các phương pháp sau đây:

.button { 
    background: url(../Images/button.png?v=1234); 
} 
+1

Ông có nghĩa là sử dụng một số ngẫu nhiên trong chuỗi truy vấn. Bạn có biết làm thế nào? – Amir

+0

Bạn không thể sử dụng javascript để tạo số ngẫu nhiên cho bạn? – Anshu

+0

Vâng! javascript là một lựa chọn tốt – Amir

1

Bạn có thể thêm một quy tắc CSS sau CSS khác, đó sẽ ghi đè các quy tắc mà tải hình ảnh và sử dụng một hình ảnh với số phiên bản đã thêm.

Quy tắc CSS được tải sau này có mức độ ưu tiên cao hơn, vì vậy bạn có thể sử dụng cùng một công cụ chọn như trong CSS chính và nó sẽ ghi đè lên quy tắc đó.

Nếu bạn không thể làm điều đó, sau đó bạn đang say. Bạn phải thay đổi URL của hình ảnh được tải để chắc chắn có được hình ảnh mới.

0

Bạn có thể thêm Expires trong htaccess, nhưng nếu hình ảnh thực sự lớn thì tôi khuyên bạn nên chống lại điều này. Như bạn hỏi mà không CSS, hãy thử:

<Files "your_bg.jpg"> 
FileETag None 
<ifModule mod_headers.c> 
Header unset ETag 
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" 
Header set Pragma "no-cache" 
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT" 
</ifModule> 
</Files> 
1

vài điều tôi muốn đặt ở đây

  1. Images, JS, các file CSS gọi trong các trang HTML được lưu trữ trong trình duyệt dựa trên URL
  2. Thay đổi trong URL sẽ đưa ra yêu cầu mới cho máy chủ và lưu trữ bộ nhớ cache mới nhất.

Tất cả những gì bạn cần làm là Thay đổi URL.

Mặc dù bạn đã sửa đổi biểu định kiểu CSS, bạn cần cập nhật HTML để tham chiếu CSS.

background: url(../Images/button.png?v=1234); 

Ex: http://www.site.com/css/style.css để http://www.site.com/css/style.css?ver=002

<link rel="stylesheet" href="css/style.css?ver=002" type="text/css" /> 
Các vấn đề liên quan