18

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

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?

typ1232
  • 5,535
  • 6
  • 35
  • 51
José Carlos
  • 2,850
  • 12
  • 59
  • 95
  • 1
    possible duplicate of [HTML5 meta Validation](http://stackoverflow.com/questions/9655526/html5-meta-validation) – Barett Dec 05 '14 at 21:39

2 Answers2

8

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

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

ews2001
  • 2,176
  • 3
  • 26
  • 38
  • 1
    Thank you for your help. But I still having the same problem with the next meta tag: `` with the message error: **Bad value Content-Script-Type for attribute http-equiv on element meta** Do you know any solutiont? Thanks in advance – José Carlos Oct 03 '12 at 16:07
  • 1
    @JoséCarlos - For javascript in the header, you can just use ``. For additional information, see this link: http://stackoverflow.com/questions/6320084/why-is-meta-http-equiv-content-script-type-mostly-unused – ews2001 Oct 03 '12 at 16:41
  • where exactly is the HTML 5 example? Your link doesn't take me to anything specific. – Stealth Rabbi Mar 21 '18 at 18:14
  • @StealthRabbi - It looks like they updated the page, I have edited the link in my answer. – ews2001 Mar 21 '18 at 21:30
8

The accepted answer is wrong! This is a good answer.

To quote 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.

Addendum: For Apache and .htaccess you could use

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

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.

CoR
  • 3,826
  • 5
  • 35
  • 42