2

私は、?ver=478459ブラウザーが CSS、画像、JavaScript などの一部のファイルをキャッシュするのを防ぐのに役立つものを試しました。そして、それがとても役立つことに気付いたので。毎回うまくいくとは限りません。たとえば、VPN を使用して仕事をする必要がある場合があります。何らかの理由で、上記のファイルのようにファイルの末尾にあるパラメーターを変更しても、クリアするまでキャッシュに残ります。プロキシを介して実行しているため、何らかの理由でパラメーターが固定されていない可能性があると考えています。しかし、常にそうであるとは限りません。

ともかく。htaccessを介してjs、css、imgファイルにrewrite_ruleを提供できる方法があるかどうか、および提供されたURLがわからないかどうかを把握しようとしています。

/scripts/jquery/__ver<version number>__/filename.js
/scripts/__ver<version number>__/filename2.js
/scripts/3.0.x/__ver<version number>__/filename2.js
/styles/jquery-ui/__ver<version number>__/filename.css
/styles/__ver<version number>__/filename2.css
/img/__ver<version number>__/something.png
/img/dir/dir/dir/__ver<version number>__/something-else.png

__ver<version number>__基本的に、書き換えルールがこれを具体的に探している場所であり<version number>、3ドットのバージョン管理ロジックまたはある種のmd5のいずれかです..または基本的に探している何か_ver*_

これが見つかった場合、書き換えルールはそれを削除し、その部分のないパスを使用します

4

2 に答える 2

6

選択したファイル拡張子の .htaccess でキャッシュを明示的に無効にすることができます。

<FilesMatch "\.(png|jpe?g|gif|js|css)$">
   FileETag None
   <ifModule mod_headers.c>
     Header unset ETag
     Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
     Header set Pragma "no-cache"
     Header set Expires "Tue, 14 Jan 1975 01:00:00 GMT"
   </ifModule>
</FilesMatch>
于 2013-09-10T17:12:46.990 に答える
2

このようなものはどうですか:

RewriteEngine On
RewriteRule ^(.*)__ver([0-9]+)__(.*)$ /$1$2?ver=$1 [L,QSA]

これをドキュメント ルートの htaccess ファイルに__ver*__追加すると、URI の一部が取り除かれ、ver=クエリ文字列パラメーターが追加されます。

于 2013-09-10T17:12:10.097 に答える