在我的Drupal网站上的许多页面上,在第一次访问(编辑)任何浏览器页面时,HTML上方(编辑:及以下)显示一个神秘的数字。在IE7和IE8中,问题页面渲染不正确,但在其他浏览器中,页面的其余部分呈现没有问题。刷新后,数字通常会消失。我的用户告诉我,每天早上都会再次出现错误,虽然我看过一个用户刷新的情况,但奇怪的数字并没有消失。我对其他浏览器没有任何问题。
以下是HTML的前几行:
3535
<!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" lang="en" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
..页面的其余部分正常生成,然后我在底部看到以下内容:
</html>
0
我很困惑 - 在apache日志或我的vhost error.log上都没有任何相关内容。我在页面上做了一个html的差异,其中数字与页面没有,除了顶部和底部的数字之外,唯一的区别是空格。
我在Ubuntu 7.04上运行Apache 2.2中的Drupal 6.19。 PHP版本是5.2。
这里的参考是我的index.php - 我认为我们没有改变标准。
<?php
// $Id: index.php,v 1.94 2007/12/26 08:46:48 dries Exp $
/**
* (Drupal copyright ommitted for brevity)
*/
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
$return = menu_execute_active_handler();
// Menu status constants are integers; page content is a string.
if (is_int($return)) {
switch ($return) {
case MENU_NOT_FOUND:
drupal_not_found();
break;
case MENU_ACCESS_DENIED:
drupal_access_denied();
break;
case MENU_SITE_OFFLINE:
drupal_site_offline();
break;
}
}
elseif (isset($return)) {
// Print any value (including an empty string) except NULL or undefined:
print theme('page', $return);
}
drupal_page_footer();
答案 0 :(得分:5)
在花费大量时间检查自己的代码之前,请分析所涉及的网络设置。
我们在一年前有一个类似的现象代理服务器将数字插入到他转发的页面中。
我不记得有关它是什么代理服务器的详细信息,以及他为什么这样做,但很明显,因为只有从某些网络访问该网站的人才能得到这些数字。
编辑:我不是百分百肯定,但我认为它是this nginx reverse proxy issue(This post也可能相关。)
答案 1 :(得分:3)
很可能所有浏览器的标记都相同,但只有IE呈现它。
我最好的猜测是,某处有一段调试代码正在打印出一些id。如果你有自己开发的任何模块/主题,那将是最好的开始。
如果找不到源代码,可以尝试切换主题并关闭模块,最终应该能够找到它。首先尝试在代码中搜索print_r
语句。
答案 2 :(得分:0)
假设您正在使用反向代理来访问Apache,请将以下行添加到全局配置中(例如 apache2.conf ):
SetEnv force-response-1.0 1
SetEnv downgrade-1.0 1
对于我的Ubuntu / Debian安装(使用nginx作为反向代理),我将这些行放入 /etc/apache2/conf.d/force-http-1.0.conf
答案 3 :(得分:0)
我不知道是否是同样的问题,但有一天早上所有可能drupal页面是一个奇怪的代码showin非常buttom,我不理解,任何方式它是我在前一晚创建的页面注定要反馈形式,我删除了所有这些并且一切恢复正常,有时候因为卡车的超载而发生这种事情,只要你做phpmyadmin并清除catche,我希望这有帮助,你好!