我完全糊涂了 - 我有一个网站,当通过Cassini(在Visual Studio中)运行时在IE8中呈现完美,但在部署到localhost并通过相同的浏览器(IE8)查看时有几个混乱的元素(样式/外观)
我在html和CSS文件上运行了Beyond Compare 3,它们完全相同。在任何情况下IIS7都可以以某种方式向浏览器发送额外/不同的信息吗?有没有人遇到过这样的事情?
请注意,Chrome和Firefox都可以通过Cassini和IIS7轻松呈现相同的网页。
(的更新) 如果按F12,IE8开发人员工具会认为您处于什么浏览器模式和文档模式?
从Cassini(http://localhost:22120)运行时,IE8保持IE8模式(可选择打开IE7兼容性视图),一切看起来都很棒。
从IIS7(http:// {机器名称})运行时,IE8自动进入IE8 Compat View,IE7标准和事情看起来很糟糕。
答案 0 :(得分:17)
我的假设(正如我之前的评论中提到的)是IE正在以不同的渲染模式工作,这取决于您使用的是IIS还是Cassini,这导致了布局的差异。根据工具|中的设置,它实际上似乎是导致此问题的IE兼容性视图设置。有两个复选框:
在兼容性视图中显示Intranet站点 - 默认情况下会选中此项。 在兼容性视图中显示所有网站 - 这不是。
无论哪种方式,您都应该使用标准元标记来强制您希望渲染的模式。
<meta http-equiv="X-UA-Compatible" content="IE=8" />
希望这有帮助。
答案 1 :(得分:5)
我认为我找到的最佳解决方案与保罗的解决方案相距不远,但它告诉浏览器使用您的Internet Explorer版本解决了我遇到的其他内容=“IE = 8”的问题。
这是:
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
答案 2 :(得分:1)
其实我遇到了同样的问题。 IE8在工具菜单下有一个兼容性设置对话框。有一个复选框,指示“在兼容模式下显示Intranet站点”。 并不是IE7的兼容性模式与使用ie7不同,存在一些差异。
答案 3 :(得分:1)
对此问题的一个侧面说明: 如果同一页面在不同服务器上呈现的方式不同但在同一IE8浏览器中,请检查您的网址 - 如果域名不完全合格,IE8会自动以兼容模式显示。
答案 4 :(得分:0)
如果页面内容相同,则将服务器发送的标头与页面进行比较。
在踢了一下之后,我虽然关于兼容模式。尝试手动强制IE8在兼容模式下呈现页面。如果渲染没有改变,那么你知道问题是因为IE从该Web服务器读取时以兼容模式呈现该页面。
如果是后者,请查看http://msdn.microsoft.com/en-us/library/dd567845%28VS.85%29.aspx