2017-01-18 4 views
1

HTMLに関するいくつかの助けを探しています。私は、すべてのブラウザで画像をキャッシュしています。HTMLでのブラウザイメージのキャッシュを防止する方法

シナリオ:

私は現在、SharePoint Onlineの上のカスタムページを構築するためにHTMLコードを使用しています。 HTMLコードはコンテンツエディタWebパーツに埋め込まれています。現在、「article-photo.jpg」というファイルを指す画像リンクがあり、これは同じファイル名を使用してマーケティング部門によって常に更新されます。

現時点では、SharePoint内のサイト資産ライブラリに保存されているファイルを別のイメージで上書きしますが、同じファイル名を使用すると、Internet Explorerを終了してSharePointサイトに戻りますが、表示されます。リフレッシュボタンを押すまでは、新しい画像が画面に表示されます。 Google Chromeでは、F5キーを押して更新すると画像がまったく更新されません。フルリフレッシュを実行してからイメージを更新するには、Shift + F5キーを使用する必要があります。

現在のところ、HTMLコードのヘッダーにメタタグを使用していません。私が使用しているimg srcは、Site Assetsライブラリにある画像への絶対パスです。 HTMLファイルには、ページにブランドを付けるCSSだけが含まれていますが、ファイルのヘッダーに何かを投げて、すべてのブラウザで画像がキャッシュされないようにすることができるかどうかを検討しています。以前のコメントに拡大し、これに助けを

おかげで、 デイブ

+2

これは、現在のタイムスタンプをイメージURLアドレスにパラメータとして挿入することで実現できます。ブラウザは毎回それを新しい要求として見ます。 –

+0

@ vitaly-tどうすればhtmlを使ってこれを達成できますか? – dmmedeiros

+0

イメージタグを動的に生成するには、JavaScriptを直接使用するか、フレームワーク経由でアクセスする必要があります。そのため、イメージのURLに '?ts = myTimeStamp'のようなものを追加することができます。 –

答えて

0

は、そうのような、タイムスタンプ付き画像を追加:

<div id="bck-img"></div> 
    <script type="text/javascript"> 
      var container = document.getElementById("bck-img"); 
      var image = document.createElement("img"); 
      image.setAttribute("src", _spPageContextInfo.webAbsoluteUrl+"/SiteAssets/article-photo.jpg?rev="+new Date().getTime()); 
      container.appendChild(image); 
    </script> 

_spPageContextInfo.webAbsoluteUrlは、現在のSharePointのWebのURLです、 の場合、?rev="+new Date().getTime();はファイル名にタイムスタンプを付加し、すべてのページロード時にサーバーからロードされるようにします。

+0

ご協力いただきありがとうございます – dmmedeiros

関連する問題