3

TomcatサーバーでGrailsを使用してWebサイトを実行しています。Webサイトのページを更新すると、Firefoxは更新を正しく適用しますが、インターネット一時ファイルを明示的に削除するまで、InternetExplorerはキャッシュされた値を保持しているようです。サイトが更新されたときにInternetExplorerユーザーが最新のWebページを持っていることを確認するにはどうすればよいですか?

編集:Internet Explorer 9でテストしましたが、以前のバージョンでも同じ問題があると思います。

編集2:問題はcssとjavascriptインクルードでのみ発生しています。

4

2 に答える 2

1

これを行う最も信頼できる方法は、キャッシュを無視してすべてのcssおよびjavascriptリソースを新たにリロードするようにブラウザに指示することです。これを行うには、cssおよびjavascriptリソースの名前を変更して、ブラウザが次のことを認識できるようにする必要があります。それらをリロードします。

本番環境に新しいビルドをデプロイするたびに、すべてのcssおよびjavascriptリソースの名前を変更するのは面倒で非現実的な作業かもしれませんが、

ui-performance-plugin

この目的のために。プラグインは、正しく構成されている場合、新しいwarを作成するたびに、リポジトリからファイル名に現在のリビジョン番号を追加するため、ファイル名が変更されます。これに関する制限は、gsp内のcssおよびjavascriptファイルへのすべての参照を更新して、直接ではなくプラグインのtablibを使用してそれらを含める必要があることです(ファイルの名前を変更するときに、gspファイル内の対応する参照も置き換えます)。

また、このプラグインは、Webアプリケーションの速度を上げるのに役立つ可能性のある他の多くの機能を提供できます。プラグインの詳細な機能については、ここをクリックしてください

お役に立てば幸いです。

于 2012-04-08T23:49:21.743 に答える
0

上記の Bala に似たより現代的な答えは、Resourcesプラグイン (デフォルトで Grails 2.0 以降に含まれており、Grails 1.3 以降ではプラグインとして利用可能) をCached Resourcesプラグインと組み合わせて使用​​することです。

Cached Resources プラグインは、すべての静的コンテンツ リンクを特別なハッシュベースのリンクに置き換えるという点で、UI Performance と同様のことを行います。UI パフォーマンスより優れているのは、リンクがファイル コンテンツに基づいているため、静的アイテムのコンテンツが変更されない場合はリンクが更新されないことです。実際には変更されていないファイルをユーザーが再ダウンロードする必要がないため、これは素晴らしいことです。

Resources プラグインを使用すると、すべてのリソースをモジュールとして定義できます。これは、アプリケーションで使用される CSS、画像、および JavaScript を記述する非常に強力な方法です。マニュアルは非常によく書かれており、始めるのに役立ちます。いくつかの手順が必要です。

  • タグ内および終了タグの直前に<r:layoutResources/>レイアウトに追加されます。<head></body>
  • 、 、タグのすべて (または一部) を<link/>、、および同等のものに置き換えます。<script/><img/><r:require/><r:script/><r:img/>
  • さらに良いことに、CSS と JavaScript の依存関係をApplicationResources.groovyファイルに移動し、再利用可能なモジュールとして設定します。

実際に切り替えるのは非常に簡単で、一度切り替えると、Zipped Resources (GZip 圧縮を有効にする) やYUI Minify Resourcesなどの他のプラグインを利用できるようになり、CSS および JS ファイルが縮小されます。

于 2012-04-09T03:47:51.993 に答える