HTML5 meta 验证

10

我正在尝试制作我的第一个HTML5页面,但是我没能使其通过 W3C 的验证,W3C 告诉我我的 meta 标签中存在一些错误。

问题页面的链接是 http://www.jmphoto.dk/otus/index.html(它是一个旧的 HTML4 页面,我试图将其用作 HTML5 的基础/重建)。

我不能找到任何解决方法来验证以下元标记或找到验证这些标签的替代品。

<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="Expires" content="0" />
<meta last-modified="Thu, 14 Apr 2011 12:17:27 GMT" />
<meta name="distribution" content="Global" />
<meta name="copyright" content="(c) 2012 OTUS" />

我已经用了大部分周末的时间在网上寻找解决方案,但没有成功,所以我真的希望有聪明的人能帮助我解决这个问题。


为什么你需要这些呢?正如其他评论者所说,它们中的大多数都是无效的或没有作用,或者两者都有。为什么不只是将版权声明放入注释中并删除所有元素,这个页面有什么特殊情况需要你尝试从页面内部控制http行为呢? - David Carlisle
4个回答

15

好的,让我们先处理简单的那个:

<meta last-modified="Thu, 14 Apr 2011 12:17:27 GMT" />

last-modified从未是meta元素的有效属性,也不应该是。不确定此处意图如何。

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

将缓存指令放入元标签中并不是一个好主意,因为虽然浏览器可能会读取它们,但代理服务器不会。因此,它们是无效的,并且您应该将缓存指令作为真正的HTTP头发送。

<meta name="distribution" content="Global" />
<meta name="copyright" content="(c) 2012 OTUS" />

name属性不支持distributioncopyright这两个值,可用的名称在https://w3c.github.io/html/document-metadata.html#standard-metadata-nameshttp://wiki.whatwg.org/wiki/MetaExtensions中有介绍。

我建议使用dcterms.audience代替distribution,并且使用dcterms.rightsdcterms.rightsHolder代替copyright


3
在版权方面,使用dcterms.rightsHolder而不是dcterms.rights。有关说明,请参见此答案 - Annie

0

这个用于meta name="last-modifed"的替代方法,经过W3验证机构验证为有效的HTML5,并且很可能被现代搜索引擎识别:

<link rel="schema.dcterms" href="http://purl.org/dc/terms/" />
<meta name="dcterms.modified" content="2018-01-26" />

0

1
是的,我已经阅读了验证器消息,但是我还没有找到任何解决方案。谢谢提供链接...我会仔细查看它们。 - Jesper Møller

-3

不是

<meta last-modified="Thu, 14 Apr 2011 12:17:27 GMT" />

你需要放置

<meta http-equiv="last-modified" content="Thu, 14 Apr 2011 12:17:27 GMT" />

2
OP正在尝试获取有效的HTML5,但是如果您通过W3C验证器运行带有您建议的标记的页面,您将收到此消息:“元素meta上的属性http-equiv的值last-modified无效。” - Jonathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接