Một cách tiếp cận tương tự khác là sử dụng htaccess mod_rewrite để bỏ qua một phần của đường dẫn khi cung cấp tệp. Trang chỉ mục không bao giờ được lưu trong bộ nhớ cache của bạn tham chiếu đến đường dẫn mới nhất đến các tệp.
Từ góc độ phát triển, nó dễ dàng như sử dụng các tham số cho số phiên bản, nhưng nó mạnh mẽ như cách tiếp cận tên tệp.
Sử dụng phần bị bỏ qua của đường dẫn cho số phiên bản và máy chủ chỉ bỏ qua nó và cung cấp tệp chưa được lưu vào bộ nhớ cache.
1.2.3/css/styles.css
cung cấp cùng một tệp css/styles.css
vì thư mục đầu tiên bị tệp htaccess loại bỏ và bỏ qua
Bao gồm các tệp được tạo phiên bản
<?php
$version = "1.2.3";
?>
<html>
<head>
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
<link rel="stylesheet" type="text/css" href="<?php echo $version ?>/css/styles.css">
</head>
<body>
<script src="<?php echo $version ?>/js/main.js"></script>
</body>
</html>
Lưu ý rằng phương pháp này có nghĩa là bạn cần phải tắt bộ nhớ đệm của trang chỉ mục của mình - Sử dụng thẻ <meta> để tắt bộ nhớ đệm trong tất cả các trình duyệt?
tệp .htaccess
RewriteEngine On
# if you're requesting a file that exists, do nothing
RewriteCond %{REQUEST_FILENAME} !-f
# likewise if a directory that exists, do nothing
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise, rewrite foo/bar/baz to bar/baz - ignore the first directory
RewriteRule ^[^/]+/(.+)$ $1 [L]
Bạn có thể thực hiện cách tiếp cận tương tự trên bất kỳ nền tảng máy chủ nào cho phép ghi lại url
(viết lại điều kiện được điều chỉnh từ mod_rewrite - viết lại thư mục thành chuỗi truy vấn ngoại trừ / #! / )
... và nếu bạn cần chặn bộ nhớ cache cho trang chỉ mục / điểm nhập trang web của mình, bạn luôn có thể sử dụng JavaSript để làm mới nó.