web-dev-qa-db-ja.com

html5メタタグキャッシュコントロールは無効になりましたか?

定義方法

<meta http-equiv="cache-control" content="no-cache" />

hTML5で? W3Cバリデーターと ドキュメント に従って無効になりました。

27
powtac

ブラウザがメタタグを読み取ることはありますが、プロキシは読み取らないため、メタタグにキャッシング命令を入れることはお勧めできません。そのため、これらは無効であり、実際のHTTPヘッダーとしてキャッシュ命令を送信する必要があります。

8
wandarkaf

HTMLソリューションはありません。 Mozillaのアプリケーションキャッシュ(cache.manifest)は非推奨です。アプリケーションキャッシュサイトには次のように記載されています。

この機能は、Web標準から削除されました。一部のブラウザではまだサポートされている場合がありますが、削除される過程にあります。使用を避け、可能であれば既存のコードを更新してください。 ...代わりに Service Worker を使用します

それとは別に、キャッシュの問題を解決するために HTTP Cache-Control を使用することをお勧めします。

6
jonasjacek

コードの最初では、これを使用する必要があります。

<!DOCTYPE html>
<html manifest="cache.manifest">

...

次に、キャッシュするコンテンツを含むcache.manifestファイルを作成します。

CACHE MANIFEST
# 2010-06-18:v2

# Explicitly cached 'master entries'.
CACHE:
/favicon.ico
index.html
stylesheet.css
images/logo.png
scripts/main.js

# Resources that require the user to be online.
NETWORK:
*

# static.html will be served if main.py is inaccessible
# offline.jpg will be served in place of all images in images/large/
# offline.html will be served in place of all other .html files
FALLBACK:
/main.py /static.html
images/large/ images/offline.jpg

マニフェストには、CACHE、NETWORK、およびFALLBACKの3つの異なるセクションがあります。

CACHE:これは、エントリのデフォルトセクションです。このヘッダーの下(またはCACHE MANIFESTの直後)にリストされたファイルは、初めてダウンロードされた後に明示的にキャッシュされます。

NETWORK:このセクションにリストされているファイルは、キャッシュにない場合はネットワークから取得される可能性があります。そうでない場合、ユーザーがオンラインであってもネットワークは使用されません。ここで特定のURLをホワイトリストに登録するか、単にすべてのURLを許可する「」を指定できます。ほとんどのサイトには「」が必要です。

FALLBACK:リソースにアクセスできない場合の代替ページを指定するオプションのセクション。最初のURIはリソース、2番目はネットワーク要求が失敗またはエラーした場合に使用されるフォールバックです。両方のURIは、マニフェストファイルと同じOriginからのものでなければなりません。特定のURLだけでなく、URLプレフィックスもキャプチャできます。 「images/large /」は、「images/large/whatever/img.jpg」などのURLからエラーをキャプチャします。

5
mahen3d

マークアップの問題ではないため、HTMLソリューションはありません。キャッシュはリソースに対するアクションであり、リソース定義自体の一部ではありません。

他の人が言ったように、HTTPヘッダーはall caches-<meta>タグは、ブラウザのキャッシュでのみ監視されます。これらは、サーバー/ Webフレームワークによって設定する必要があります。

とは言っても、ブラウザがまだ<meta http-equiv="cache-control" content="no-cache">は、HTML5 Doctypeのページ用です。

1
Stu Cox