我有一个网站,如果存在 ob_start('ob_gzhandler') ,则会在浏览器中抛出内容编码错误。如果我删除该语句,它就可以正常运行。

  • 该站点与许多其他站点使用相同的框架、服务器和托管包。无论声明是否在其中,它们都有效。
  • 该语句位于框架中,而不是应用程序代码中,因此它由所有站点共享。
  • 工作站点和非工作站点的配置没有区别。
  • 该网站使用完全相同的代码和数据在本地运行良好。
  • 您可以使用curl / wget 获取该站点,并且返回的HTML 在浏览器中可以正常呈现。
  • 响应头是完全相同的,没有out没有声明。

我现在已经删除了远程服务器上的所有代码,并重新上传了所有内容。还是没有变化。下一步是重新安装该网站,并从头开始,但我不想丢失所有数据。

有什么指示、建议或解决方案吗?

有帮助吗?

解决方案

通常我会这样做,它对我有用,试一试

ob_end_clean(); 或者 ob_flush(); 在您开始的页面底部 ob_start();

参考:

ob_end_clean();

ob_flush();

其他提示

只是把这行代码放在开始,一切都会很好..

while (ob_get_level() > 0) { ob_end_clean() ; } 
.

如果您已经使用apache的gzip压缩(所以您的外观,因为只要我看到CSS / JS被压缩),那么使用ob_start('ob_gzhandler')将压缩该压缩。。浏览器将无法处理它。

我在校正时谈论当然,当我总是使用Apache来为我做这件事,但它看起来你是双重的东西,这就是它没有“ob_gzhandler”语句的原因。

检查另一个站点上的.htaccess文件,并将其与您运行的网站进行比较,与我看不到的问题,因为我无法在Zacoders.net和Jadeit.co.za上运行drupal,只是在Jadeit.co.za上让我认为他们没有像你说的那样的框架?耸肩

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top