2009-01-13 26 views
46

Tôi đang xem html của trang web yêu thích của tôi ... e hèm ... và tôi thấy điều này trong đánh dấu:'?' làm trong một liên kết Css?

<link href="/Content/all.min.css?d=20090107" rel="stylesheet" type="text/css" /> 

những gì hiện làm "d = 20.090.107?"? Tôi cho rằng đó là một ngày của một số loại, nhưng tôi không chắc chắn lý do tại sao nó trong đường dẫn đến tập tin. Bất kỳ ý tưởng?

+0

@James Burgess: Một liên hệ của Google đệ quy. =) – Jronny

Trả lời

69

Đó là để thêm một số tính duy nhất vào tên tệp, để khi thay đổi tệp CSS, họ có thể thay đổi bit phụ để chắc chắn rằng mọi khách hàng sẽ tải lại CSS thay vì sử dụng phiên bản được lưu trong bộ nhớ cache.

Máy chủ web sẽ bỏ qua các tham số và phục vụ /Content/all.min.css thường

Lưu ý: Trong khi nó có thể CSS được tạo động, đây là một thành ngữ phổ biến để đảm bảo tải lại, và đưa tham số là một ngày, có vẻ như rất có thể.


Edit: Podcast 38 đề cập này ...

Chúng tôi đã sử dụng hết hạn hoặc Cache-Control Tiêu đề vì chúng ta đưa ra. Thao tác này sẽ lưu các trình duyệt vòng khi không thường xuyên thay đổi các mục, chẳng hạn như hình ảnh, javascript hoặc css. Nhược điểm là , khi bạn thực sự thay đổi những tệp này, bạn phải nhớ thay đổi tên tệp. Một phần của quá trình xây dựng của chúng tôi bây giờ là “thẻ” các tệp này với số phiên bản để chúng tôi không còn phải nhớ thực hiện việc này theo cách thủ công.

+0

cách thông minh. Điều đó có nghĩa là chúng tôi luôn lừa dối trình duyệt mà tập tin được thay đổi! – istrone

12

Đó là để "xóa bộ nhớ cache" mỗi khi kiểu được cập nhật. Tôi sẽ suy đoán rằng bất kỳ ai chịu trách nhiệm về những kiểu đó sẽ tăng lên mỗi khi có sự thay đổi. Đó là bởi vì trình duyệt nhìn thấy một URL khác trong trường kiểu, do đó, nó sẽ lấy phiên bản mới nhất, mặc dù nó về mặt kỹ thuật ở cùng một vị trí trên máy chủ.

Như được chỉ dẫn một cách hữu ích trong các nhận xét, các tệp css thường có thời gian hết hạn được đặt trong tương lai, phương pháp này là một sidestep tốt cho các tiêu đề liên quan đến bộ nhớ cache.

Khá là một mẹo hữu ích.

+2

Có, máy chủ sẽ đặt tiêu đề hết hạn cho các tệp css trong tương lai xa để ngăn các yêu cầu không cần thiết chỉ trả về một phản hồi không được sửa đổi. Vì vậy, khi các tập tin thực sự thay đổi, máy chủ cần phải tinh chỉnh tên tập tin để ngăn chặn một bộ nhớ cache trình duyệt hit. – CurtainDog

4

Nó làm cho trình duyệt nghĩ rằng đó là một tệp mới mọi lúc để nó làm mới bộ nhớ cache của nó.

Rất hữu ích khi bảng định kiểu của bạn thay đổi thường xuyên ...

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