0

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

<!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">

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

4

2 回答 2

1

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



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



: setcookie() [function.setcookie]: 依赖系统的时区设置是不安全的。请使用 date.timezone 设置、TZ 环境变量或 date_default_timezone_set() 函数。如果您使用了这些方法中的任何一种,但仍然收到此警告,您很可能拼错了时区标识符。我们在第172行的/home/goorins/public_html/lib/Aitpagecache/Mainpage.php中为 'EDT/-4.0/DST' 选择了 'America/New_York'警告:无法修改标头信息 - 标头已发送(输出开始于/home/goorins/public_html/lib/Aitpagecache/Mobile/Detect.php:42)在/home/goorins/public_html/lib/Aitpagecache/Mainpage.php172行



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

于 2012-10-24T06:53:53.347 回答
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 文档从您的服务器传送到验证器服务的问题。

于 2012-10-23T01:10:58.520 回答