Ein anderer ähnlicher Ansatz besteht darin, htaccess mod_rewrite zu verwenden, um einen Teil des Pfads beim Bereitstellen der Dateien zu ignorieren. Ihre nie zwischengespeicherte Indexseite verweist auf den neuesten Pfad zu den Dateien.
Aus entwicklungspolitischer Sicht ist es so einfach wie die Verwendung von Parametern für die Versionsnummer, aber es ist genauso robust wie der Dateinamenansatz.
Verwenden Sie den ignorierten Teil des Pfads für die Versionsnummer. Der Server ignoriert ihn einfach und stellt die nicht zwischengespeicherte Datei bereit.
1.2.3/css/styles.css
dient der gleichen Datei wie css/styles.css
seit dem Entfernen des ersten Verzeichnisses, das von der htaccess-Datei ignoriert wird
Einschließlich versionierter Dateien
<?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>
Beachten Sie, dass dieser Ansatz bedeutet, dass Sie das Caching Ihrer Indexseite deaktivieren müssen. Verwenden Sie <meta> -Tags, um das Caching in allen Browsern zu deaktivieren ?
.htaccess-Datei
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]
Sie können auf jeder Serverplattform, die das Umschreiben von URLs ermöglicht, denselben Ansatz wählen
(Umschreibbedingung von mod_rewrite angepasst - Verzeichnis umschreiben, um Zeichenfolge außer / #! / abzufragen )
... und wenn Sie Cache-Busting für Ihre Indexseite / Ihren Site-Einstiegspunkt benötigen, können Sie diese jederzeit mit JavaSript aktualisieren .