【问题标题】:Website is displayed as HTML-Code instead of rendered HTML - indeterministic网站显示为 HTML 代码而不是呈现的 HTML - 不确定
【发布时间】:2012-09-11 12:54:34
【问题描述】:

我有一个网站问题,有时浏览器窗口中只显示 HTML 文本,而不是呈现的 HTML 页面。这有时会在所有浏览器中发生。 示例网址: http://www.starkl.at/view/p-1258/Newsletter---Gartentipp/

来自 IE9 的 HTTP 请求标头是(未显示 Cookie):

GET http://www.starkl.at/view/p-1258/Newsletter---Gartentipp/ HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: http://www.starkl.at/view/p-1931/Service/
Accept-Language: de-AT
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
DNT: 1
Host: www.starkl.at
Pragma: no-cache

HTTP 响应标头是:

HTTP/1.1 200 OK
Date: Wed, 19 Sep 2012 07:43:49 GMT
Cache-Control: no-cache, no-store, must-revalidate, proxy-revalidate
Content-Type: text/html;charset=UTF-8
Content-Length: 21160
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive

内容长度(以字节为单位)似乎也匹配。 它是在 Tomcat 6/7 上运行的 Java 6/7 应用程序,前面有一个额外的 httpd 2.2.x。

知道可能是什么问题吗????

提前致谢!

【问题讨论】:

  • 问题是 httpd 版本过时 :(

标签: html http servlets web rendering


【解决方案1】:

如果浏览器编写代码而不呈现代码是因为它被告知要这样做,那么您的应用可能会返回以浏览器认为是纯文本的方式编码的 html。

【讨论】:

  • HTML 代码以 "ttp://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" rel="nofollow" target="_blank">w3.org/TR/xhtml11/DTD/xhtml11.dtd"> w3.org/1999/xhtml">" 并以 "" 正确终止 你能说得更具体一点吗?这正是内容类型 text/html 所说的。
  • 不知道你的代码很难说。但可能您在某些地方将 html 作为字符串返回给您的客户,并且您可能在某些地方指定该字符串应按字面意思处理。这将使您的浏览器将其写下来,而不是尝试解析和呈现它。但我只是猜测,因为您没有向我们提供任何代码来检查...
  • 代码太复杂了,这里就不展示了。简而言之就是: 1. 在内存中构建 HTML。 2. 序列化为一个大字符串。 3. 转换为 UTF-8 编码的字节数组。 4、一次性写入字节数组到HttpServletResponse,根据字节数组长度设置content-length
  • 我敢打赌问题出在编码上。可能“”字符被编码到客户端,因此浏览器只是编写它们,无法呈现 HTML 代码。
  • 问题是 CentOS 5 上的旧 httpd 版本 2.2.3。通过升级到 httpd 2.2.22 问题解决了!
【解决方案2】:

打开工具、选项、电子邮件、电子邮件选项,然后取消选中“以纯文本格式阅读所有标准邮件”。这适用于 Outlook 2003,因此您的版本(如果不是 2003)可能会略有不同。

【讨论】:

  • 这个问题与Outlook或电子邮件无关。
猜你喜欢
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 2018-02-08
  • 1970-01-01
  • 2022-12-28
  • 1970-01-01
  • 2015-04-13
  • 2021-09-28
相关资源
最近更新 更多