W3C标记验证服务不显示DOCTYPE

时间:2012-10-22 23:37:19

标签: magento doctype w3c-validation

为什么W3C告诉我我的网页没有设置doctype(特别是home page)?我的home page使用的是1column.phtml,它有一个有效的doctype(见下文),当您在浏览器中查看源代码时,您可以看到它。 w3c标记验证服务告诉我没有设置doctype,为什么?!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

我们的开发网站显示了一个有效的doctype ..我甚至尝试从那里获取1column.phtml(root)模板并替换实时模板,但仍然没有。我完全不知道问题是什么。

2 个答案:

答案 0 :(得分:1)

发送给验证程序的主页的前8行在doctype之前,并说:



严格标准:Aitoc_Aitpagecache_Mobile_Detect :: __ construct()[aitoc-aitpagecache-mobile-detect .-- construct]:依赖系统的时区设置是不安全的。请使用date.timezone设置,TZ环境变量或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们在 / b> /home/goorins/public_html/lib/Aitpagecache/Mobile/Detect.php 42 中选择'America / New_York'作为'EDT / -4.0 / DST' >

注意:未定义的索引: /home/goorins/public_html/lib/Aitpagecache/Mobile/Detect.php 中的 42 中的HTTP_ACCEPT >
严格标准:setcookie()[function.setcookie]:依赖系统的时区设置是不安全的。请使用date.timezone设置,TZ环境变量或date_default_timezone_set()函数。如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符。我们在 /home/goorins/public_html/lib/Aitpagecache/Mainpage.php 中选择'America / New_York'作为'EDT / -4.0 / DST',而不是 172 <登记/>
警告:无法修改标题信息 - 已在 / home / goorins /中发送的标题(在/home/goorins/public_html/lib/Aitpagecache/Mobile/Detect.php:42处开始输出) public_html / lib / Aitpagecache / Mainpage.php 在线 172


这似乎来自AITOC magento插件。对我来说意义不大(PHP / apache / magento不是我的事),但看起来Mobile / Detect.php第42行假定将有一个HTTP“accept”标头要处理。 HTML验证器不发送HTTP“accept”标头,因此会出现错误,该错误在输出页面的顶部报告。可能是因为它报告错误,它还会报告有关时区设置配置错误的警告。

答案 1 :(得分:0)

如果没有深入的调试会话,很难确定,但我的猜测是没有任何字符编码与浏览器标头一起发回。

$ curl -I https://www.goorin.com/
HTTP/1.1 200 OK
Date: Tue, 23 Oct 2012 01:04:50 GMT
Server: LiteSpeed
Connection: close
Set-Cookie: frontend=7dcc17b985ecd8983ff6ade10e0f6f2c; expires=Tue, 23-Oct-2012 02:04:50 GMT; path=/; domain=..www.goorin.com; httponly
Set-Cookie: frontend=7dcc17b985ecd8983ff6ade10e0f6f2c; expires=Tue, 23-Oct-2012 02:04:50 GMT; path=/; domain=..www.goorin.com; httponly
Content-Type: text/html

以某种方式导致字符编码被释放,验证器不再识别它。

尝试使用curl下载主页

curl -I https://www.goorin.com/ > home.html

然后使用W3C文件上传验证服务(“通过文件上传验证”选项卡)。当我这样做时,验证者停止抱怨你的DOCTYPE

因此,即使标题中缺少字符编码,这也表明问题是将HTML文档从服务器传递到验证器服务。