使用Page Speed测试此页面时,出现Specify a character set错误:

The following resources have no character set specified in their HTTP headers. Specifying a character set in HTTP headers can speed up browser rendering.

存在Content-Type标记,并且该页面也使用UTF-8编码保存,那么错误是从哪里来的呢?

评论

阿帕奇在哪里?哪个目录?

#1 楼

它是指响应标头,而不是文档正文(“内容类型标记”)。

如果您使用任何HTTP调试器(例如,Firefox的Firebug的“ Net”面板,或Google Chrome / Internet Explorer / Safari / Opera中开发人员工具的类似标签),您将看到以下行:

Content-Type: text/html


同时,如果您选中与该页面相同,您将看到:

Content-Type: text/html; charset=utf-8


页面速度是指缺少的部分。标头中存在正确的字符集确实可以加快页面渲染速度。在响应标头中指定了错误的字符集(或根本没有字符集)的情况下,浏览器需要扫描/解释页面,直到找到正确的字符集声明(<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />行),然后如果字符集与以下字符集不同,则重新启动渲染过程浏览器的默认设置。

性能损失根本不大-对于用户来说,除非使用了真正的旧/慢硬件,否则它并不引人注意(尽管每个浏览器和浏览器版本都不同)。也许还有其他与之直接相关的“惩罚”,但我个人没有意识到。

修复:如果您自己生成此标头(在您的PHP脚本中),则需要进行更改它也包括字符集。如果您的脚本不执行此类标头操作,则是服务器配置错误。

评论


我刚刚添加了header('Content-type:text / html; charset = UTF-8');。非常感谢!

– Alex
11年8月20日在17:23

您还可以使用curl --head $ url查看响应头。可以在Apache中通过将AddDefaultCharset utf-8添加到.htaccess之类的配置文件中来指定默认字符集。

– Lri
2012年3月23日在10:32

+1为清楚的解释,常常对此感到疑惑,并感到困惑。用htaccess的AddDefaultCharset解决

–玛拉基
2012年4月22日上午10:17

是否足够?

–丹尼尔·斯普林格(Daniel Springer)
16-10-28在12:21