Sử dụng Cache Busting cho CSS và JS với PHP

Nếu bạn đang xây dựng 1 website bằng PHP và muốn lưu cache của CSS và Javascript vào trình duyệt, việc bạn phải làm là lấy ra được thời gian cập nhật cuối của tập tin.

Bởi vì tập tin sẽ chỉ thay đổi khi bạn cập nhật, chuỗi truy vấn (query string) cũng vậy. Đây là một cách rất đơn giản nhưng cực kỳ hiệu quả để tận dụng bộ nhớ đệm trình duyệt.

Đầu tiên, mình sẽ viết 1 hàm như sau

function get_filetime($file_path = false) { // Kiểm tra tham số $file_path
		if($file_path && file_exists($file_path)) { // Kiểm tra tập tin có tồn tại hay không bằng hàm file_exists()
			return filemtime($file_path); // Trả về thời gian cập nhật cuối của tập tin bằng hàm filemtime()
		}
	}

Sau đó, tất cả những gì bạn cần làm là thêm đường dẫn tuyệt đối của tệp CSS (hoặc JS). Hàm sẽ trả về một chuỗi số (dấu thời gian unix) mà bạn có thể sử dụng làm chuỗi truy vấn (query string).

Ví dụ:

theme.css?v=<?=get_filetime($_SERVER['DOCUMENT_ROOT'] . 'theme.css'); ?>

Kết quả trả về:

theme.css?v=1559049692

Chúc các bạn thành công!