Benzer bir yaklaşım da htaccess mod_rewrite kullanmaktır. dosyaları sunarken yolun bir kısmını yok saymak . Hiçbir zaman önbelleğe alınmamış dizin sayfanız, dosyaların en son yolunu gösterir.
Geliştirme açısından, sürüm numarası için parametreler kullanmak kadar kolaydır, ancak dosya adı yaklaşımı kadar sağlamdır.
Sürüm numarası için yolun göz ardı edilen kısmını kullanın ve sunucu onu yok sayar ve önbelleğe alınmamış dosyayı sunar.
1.2.3/css/styles.css
css/styles.css
ilk dizin htaccess dosyası tarafından soyulup yok sayıldığından beri aynı dosyayı sunar
Sürümü belirlenmiş dosyalar dahil
<?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>
Bu yaklaşımın, dizin sayfanızın önbelleğe alınmasını devre dışı bırakmanız gerektiği anlamına geldiğini unutmayın - Tüm tarayıcılarda önbelleğe almayı kapatmak için <meta> etiketlerini mi kullanıyorsunuz?
.htaccess dosyası
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]
Url'nin yeniden yazılmasına izin veren herhangi bir sunucu platformunda aynı yaklaşımı uygulayabilirsiniz
( mod_rewrite'dan uyarlanan koşulu yeniden yaz - / #! / dışında dizini sorgu dizesine yeniden yaz )
... ve dizin sayfanız / site giriş noktanız için önbellek bozmaya ihtiyacınız varsa , yenilemek için her zaman JavaSript kullanabilirsiniz .