当在URL中使用本地主机时,IIS以不同的方式显示页面

我有(又一个)IIS的奇怪的问题。 在浏览到http://localhost/page.aspx浏览我在本地机器上devise的ASPX页面时,页面看起来和预期的一样(在IE,Firefox和Chrome中看起来是一样的)如果将localhost更改为my_hostname ,使用禁用的垂直滚动条呈现。

当我将我的网站发布到我们的实时服务器并看到相同的差异时,行为首先被注意到。 在我的头靠在墙上敲了一下之后,我尝试了上面所描述的,并且能够复制我的“问题”。 所以,我转向你们。

这不是真的是一个问题(除了跨浏览器的不一致性),除了这个“绝对”定位的<div>移动它在屏幕的中途,而不是像它应该是中心(和被查看任何其他方式, 除了在地址是什么,但在本地主机的IE浏览器)。


作为另一个testing,我添加了一个新的aspx页面到我的项目,并没有添加或更改任何默认的代码。 如果我使用本地主机浏览到页面,则没有滚动条。 如果我使用my_hostname浏览到页面,那么滚动条就在那里。 不pipe它有什么不同,它使得IE浏览器对CSS的处理被搞砸了,到最开始,在我testing的所有浏览器中,所有的工作都是一样的,事后,IE只是自己制定规则。 这令人难以置信的令人沮丧,我真的希望我只是做错了事情,这不是一个固有的问题。

我知道这是一个古老的线程,但我只是碰到了同样的问题。 如果您使用IE8,则问题可能是其兼容性视图。 默认情况下,本地Intranet中的站点(不是本地主机)将在IE7兼容性视图中呈现。 更多信息:

http://msdn.microsoft.com/en-us/library/cc288325%28VS.85%29.aspx

不幸的是,这并没有帮助摆脱残疾的滚动条,但它确实解释了这种差异。

该问题驻留在IE8兼容性视图设置。 默认情况下,Intranet站点(您的服务器)以兼容性视图显示。 要覆盖这个行为,你应该把下面的代码添加到你的aspx页面后面的代码中。

 protected override void OnPreInit(EventArgs e) { Response.AddHeader("X-UA-Compatible", "IE=8"); base.OnPreInit(e); } 

它为我工作。

在IE9中,在localhost上运行的网站会自动呈现为“兼容模式”。 要更改此(默认)行为,请执行以下操作:

  1. 如果未激活,请激活工具栏Command
  2. 点击页面>设置Compabilitymode
  3. 取消选中“以compability模式显示intranetsites”

这里有一个关于这个StackOverflow的post

基本上改变你的HTML布局或母版页(在<%@...%> )的顶部:

 <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> 

CSS不应该受到URL的影响。 你有任何机会隐藏文本的URL在正文导致它转移的地方? 如果在两种情况下使用http://www.quickdiff.com/这样的工具查看文件的来源,那么它们之间有什么不同&#xFF1F;