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
评论
阿帕奇在哪里?哪个目录?