【问题标题】:.php vs .html . Why is IE rendering them differently?.php 与 .html 。为什么 IE 以不同的方式呈现它们?
【发布时间】:2013-06-09 00:30:35
【问题描述】:

我复制了一个项目中的一个 html 页面,只是将扩展名从 html 更改为 php。 除了 IE,所有浏览器的渲染都是相同的。似乎 IE 根据扩展名对页面进行了不同的处理。

我检查了 HTTP 标头,两个页面的标头相同。 有没有人遇到同样的问题?

【问题讨论】:

  • HTML 页面看起来和以前一样吗?
  • 您应该WinDiff 完整的响应,而不是仅仅检查标题。 Fiddler (www.fiddler2.com) 让这一切变得简单。

标签: php html internet-explorer


【解决方案1】:

确保您不在Quirks mode。大多数情况下,这是因为我在 <doctype> 之前有文字。

【讨论】:

  • 我经常碰到它,错误消息爬到那里。
【解决方案2】:

PHP 没有配置为自动将任何内容附加或添加到您的文件中,是吗?远射,但值得检查...

(请参阅this page 的数据处理部分)

【讨论】:

    【解决方案3】:

    我将首先验证响应是否相同。按顺序尝试以下操作:

    1. 保留扩展名 (.php) 并配置您的网络服务器,使其像任何 html 页面一样提供服务。检查页面是否呈现不同。如果是,则不是扩展名。
    2. 获取原始响应(例如,使用 wget -S)并将其与 html 页面的响应进行比较。
    3. 用 php 覆盖标题(使用 header()),直到找到负责更改的标题。

    我真的怀疑它是扩展名,它一定是标题中的东西。

    【讨论】:

      【解决方案4】:

      您使用的是什么版本的浏览器?旧版本的 IE 会产生一些不符合标准的输出,尤其是连接到 CSS 时。 (你在使用 CSS 吗?)

      某些元素在不同浏览器中略有不同是很常见的。这就是让网络编码变得有趣(?!)和挑战的原因。

      正如达里尔所问,究竟有什么不同?

      【讨论】:

      • 他实际上是说这是在同一个浏览器中渲染同一个文件的区别,唯一的区别是文件扩展名。
      • 他并没有说“有什么不同”。只是说一个页面是不同的并没有帮助。是桌子吗?一个div?字体样式?边框/边距?页面的哪个特定部分呈现不同。这将有助于缩小原因以准确了解问题所在。
      【解决方案5】:

      与其通过 HTTP 浏览网页到 Web 服务器,不如尝试 File->Open。这至少会消除或指控网络服务器。

      【讨论】:

        【解决方案6】:

        只需添加:

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        

        在源文件的顶部

        【讨论】:

          猜你喜欢
          • 2014-01-07
          • 2011-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-18
          • 1970-01-01
          • 2010-10-03
          相关资源
          最近更新 更多