Html 元标记中的错误值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/12693630/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-29 03:09:09  来源:igfitidea点击:

Bad values in meta tags

htmlmeta-tags

提问by José Carlos

I've got a problem when I pass the html5 validator to my site from w3c validator. The errors are next:

当我从 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" >

What are the correct values to meta tags to pass html5 validator?

传递 html5 验证器的元标记的正确值是什么?

采纳答案by ews2001

For HTML5 you use a cache manifest file in the header. This is an example of how to use: http://www.w3.org/TR/html5/browsers.html#manifests

对于 HTML5,您在标题中使用缓存清单文件。这是如何使用的示例:http: //www.w3.org/TR/html5/browsers.html#manifests

Also, you force no cache with this:

此外,您强制不缓存:

<meta http-equiv="expires" content="0">

This is a good tutorial on how to use the cache manifest file: https://www.html5rocks.com/en/tutorials/appcache/beginner/#toc-manifest-file-creating

这是一个关于如何使用缓存清单文件的好教程:https: //www.html5rocks.com/en/tutorials/appcache/beginner/#toc-manifest-file-creating

回答by CoR

The accepted answer is wrong! Thisis a good answer.

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

To quote Alohci:

引用 Alohci 的话:

Putting caching instructions into meta tags is not a good idea, because although browsers may read them, proxies won't. For that reason, they are invalid and you should send caching instructions as real HTTP headers.

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

Addendum: For Apache and .htaccess you could use

附录:对于 Apache 和 .htaccess,您可以使用

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

PHP have headers_sent() and header() function for that.

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.
}

Point is that caching instructions should be in header. Not in html file.

重点是缓存指令应该在标题中。不在 html 文件中。