在我的开发人员机器上,ASP.NET MVC 3应用程序运行完美(IE9,Firefox),但在生产服务器上,当我在IE9中打开它时,JavaScript代码和CSS的某些部分(例如border-radius)不会进入IE9。我怀疑IIS因为在localhost IE9上的开发机器上运行良好。服务器版本(Win 2008 R2,IIS 7.5)和IE在两台计算机上都是相同的。 请问有什么问题?
答案 0 :(得分:4)
这几乎肯定与IIS无关。这里可能发生的事情是IE9太聪明了。
IE有一个配置设置,当你在本地内部网上加载一个站点时,打开时告诉浏览器回退到IE8兼容模式。
此设置的想法是让拥有狡猾的内部Web应用程序的企业更容易升级到IE9,因为理论上他们的内部站点将继续在IE8模式下工作。
这就是理论。实际上,出于多种原因,这是一个坏主意。
真正糟糕的部分是默认情况下设置已开启。
大多数用户从未注意到,因为大多数人都没有开发自己的网站。但对于Web开发人员来说,它可能是一个非常烦人的功能,因为“内部Intranet”包括localhost。我建议您找到该设置,然后将其关闭。
实际上没有其他人会受到影响,即使他们使用的IE9仍然打开了标志,因为他们不会像你一样从localhost加载网站。
有些用户可能会将其浏览器设置为始终显示兼容模式(我无法想象为什么会这样,但这是可能的)。对于这些用户,将以下代码行添加到<head>
部分会很有帮助:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
这告诉IE总是使用它可用的最佳渲染引擎(因此IE9将处于IE9模式)。这将与其他用户打交道。但是,对于您自己,我认为您可能仍需要在设置中手动关闭标记,因为如果我没记错,该本地Intranet设置会覆盖X-UA-Compatible
标题。
希望有助于解释事情。
答案 1 :(得分:2)
IIS和ASP.NET与CSS渲染方式无关,因此请不要担心。
对于IE9以不同方式呈现它们,我的猜测是其中一个使用不同的模式。点击F12进入开发人员工具,你会看到两个选项来改变IE7,IE8,IE9的模式,我认为怪癖模式或类似的东西。确保两者都设置为IE9,你应该看到正确的CSS东西。
答案 2 :(得分:2)
边框半径应该在IE9上正确呈现。您可能在页眉中错过了这个
<meta http-equiv="X-UA-Compatible" content="IE=edge" />