Плохие значения в метатегах

У меня проблема, когда я передаю валидатор 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-файле.