<meta http-equiv="cache-control" content="no-cache" />
在HTML5中,根据W3C验证器和文档,它不再有效。
<meta http-equiv="cache-control" content="no-cache" />
在HTML5中,根据W3C验证器和文档,它不再有效。
将缓存指令放入元标签中并不是一个好主意,因为尽管浏览器可能会读取它们,但代理服务器不会。因此,它们是无效的,您应该将缓存指令作为真正的HTTP头发送。
<!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。
CACHE: 这是条目的默认部分。在这个标头下列出的文件(或紧接在CACHE MANIFEST后面)将在第一次下载后被明确地缓存。
NETWORK: 在该部分列出的文件可以从网络中获取,如果它们不在缓存中,则不使用网络,即使用户在线。您可以在此处将特定的URL列入白名单,或仅使用“”,允许所有URL。大多数网站都需要 ""。
FALLBACK: 可选部分,用于指定当资源无法访问时的备用页面。第一个URI是资源,第二个是在网络请求失败或错误时使用的备用。两个URI必须与清单文件来自相同的源。您可以捕获特定的URL,也可以捕获URL前缀。"images/large/"将捕获来自诸如"images/large/whatever/img.jpg"之类的URL的故障。
cache.manifest
文件...但是在这里被提到已经过时了...https://en.wikipedia.org/wiki/Cache_manifest_in_HTML5 - Kai Carver这不是一个标记问题,因此没有 HTML 解决方案。缓存是对资源的操作,而不是资源定义本身的一部分。
正如其他人所说,HTTP 标头是控制缓存的最佳方法,因为所有缓存都会观察这些标头,而 <meta>
标签只能被浏览器缓存观察到。这些应该由您的服务器/ Web 框架设置。
话虽如此,如果页面使用 HTML5 doctype,我不会感到惊讶,浏览器仍然会观察 <meta http-equiv="cache-control" content="no-cache">
。