Плохие значения в метатегах
У меня проблема, когда я передаю валидатор html5 на свой сайт из валидатора w3c. Ошибки следующие:
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" >
каковы правильные значения для метатегов для передачи валидатора html5?
2 ответов
для HTML5 вы используете файл манифеста кэша в заголовке. Это пример того, как использовать: http://www.w3.org/TR/html5/browsers.html#manifests
кроме того, вы не заставляете кэш с этим:
<meta http-equiv="expires" content="0">
Это хороший учебник о том, как использовать файл манифеста кэша : https://www.html5rocks.com/en/tutorials/appcache/beginner/#toc-manifest-file-creating
принятый ответ неверен! этой - хороший ответ.
процитировать 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-файле.