元标记中的错误数值

18

我在使用w3c验证器对我的网站进行HTML5验证时遇到了问题。错误信息如下:

Bad value Content-Script-Type for attribute http-equiv on element meta
<meta http-equiv="Content-Script-Type" content="text/javascript" >

Bad value expires for attribute http-equiv on element meta
<meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT" >

Bad value pragma for attribute http-equiv on element meta
<meta http-equiv="pragma" content="no-cache" >

Bad value Cache-Control for attribute http-equiv on element meta.
<meta http-equiv="Cache-Control" content="no-cache" >

如何正确设置 meta 标签以通过 HTML5 验证器?


1
可能是HTML5元验证的重复问题。 - Barett
2个回答

8

1
谢谢您的帮助。但是我仍然遇到了下一个meta标签的相同问题: <meta http-equiv="Content-Script-Type" content="text/javascript" >,并显示错误消息:在元素meta上,属性http-equiv的值Content-Script-Type无效您知道任何解决方案吗?提前致谢。 - José Carlos
1
@JoséCarlos - 对于头部的JavaScript,您可以使用<script type="text/javascript"></script>。有关更多信息,请参见此链接:https://dev59.com/Rm015IYBdhLWcg3w6QHA - ews2001
HTML 5的示例在哪里?你的链接没有带我到任何具体的地方。 - Stealth Rabbi
@StealthRabbi - 看起来他们更新了页面,我已经在我的回答中编辑了链接。 - ews2001

8

接受的答案是错误的!这个是一个好答案。

引用Alohci的话:

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

附加说明: 对于Apache和.htaccess,您可以使用

<ifmodule mod_expires.c>
ExpiresActive On
ExpiresDefault value      or
ExpiresByType text/css  "access plus 1 month"
...
</IfModule>

PHP有headers_sent()函数和header()函数来实现此功能。

function header_no_cache () {
    \header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
    \header('Pragma: no-cache'); // HTTP 1.0.
    \header('Expires: 0'); // Proxies.
}

重点是缓存指令应该在头部中,而不是在HTML文件中。

好的,那你如何将它们作为真正的HTTP头发送? - Stealth Rabbi
除非这是针对使用来自主机提供商的外部不可配置的Web服务器的静态HTML5网站,否则此方法无效。 - ZN13

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