web-dev-qa-db-ja.com

「ソースを表示」に最新のファイルが表示されていても、JavaScriptとCSSがキャッシュされ、WAMPサーバーから更新されずに更新されない

PHP 7.2.10。のWAMPサーバーがあります。 .cssなどのファイルを変更すると、その変更はブラウザーに表示されません。ブラウザで「ソースを表示」するとき(Ctrl+U)更新された最新バージョンのコードを入手します。それでも、ブラウザには私のサイトの外観が更新されて表示されません。

それが単なるキャッシュの問題なら、古いバージョンのファイルを「ソースの表示」に表示するべきだと思っていました。

JavaScriptでも同じ問題があります。単純なjQueryコード(選択したクラスをクリックした後にアラート)があり、ブラウザー内のサイトのソースコードに表示されますが、選択したクラスをクリックしても何も起こりません。

1
Lukeash

それが単なるキャッシュの問題なら、古いバージョンのファイルを「ソースの表示」に表示するべきだと思っていました。

ソースの表示では、古いバージョンではなく、新しいバージョンのファイルが実際に表示されます。 Chrome および Firefox は両方とも、ソースを表示するときにリソースを更新します。つまり、新しいバージョンが表示されます。

常に最新バージョンを取得するために、次の2つのいずれかを実行できます。

  • Cache-Control HTTPヘッダーを確認し、サーバーがno-cacheなどの応答を提供していることを確認します

または

  • ブラウザの開発ツールを開き、[ネットワーク]セクションに移動し、[キャッシュを無効にする]をクリックして、開発ツールが開いているときにキャッシュを無効にします。

また、PHPを使用している場合は、次のコードを配置できます。

「?v = <?php echo time();?>」

リンクタグの場合、この例のようにhrefパラメーターの最後に:

"<link rel = 'stylesheet' href = '。/ inc/mystyle.css?v = <?php echo time();?>'>"

その結果、コードは次のようになります。

「<link rel = 'stylesheet' href = '。/ inc/mystyle.css?v = 1553116856>」

これにより、常にキャッシュが更新されます。

スクリプトタグの場合も同じですが、srcパラメーターは次のようになります。

<script src = "./ inc/myscript.js?v = <?php echo time();?>"> </ script>

そして同じ結果になります:

<script src = "./ inc/myscript.js?v = 1553116856"> </ script>

それを試してみてください!これはあなたを助けると思います!

1
Efrain Alvarez

特定のドキュメント(localhost/example/cssfile.css)をyuorブラウザで呼び出し、それを「更新」すると、ドキュメントの変更が更新されて有効になることがわかりました。これがウィンドウのグリッチなのか、WAMPグリッチなのかわかりません。しかし、それは私にとって一貫して問題を解決しました。

1
elbrant