【问题标题】:Local website renders differently using (IP address or machine name) vs localhost?本地网站使用(IP 地址或机器名称)与 localhost 呈现不同?
【发布时间】:2011-10-11 07:53:21
【问题描述】:

我有一个 MVC3(剃须刀)站点在本地发布到 IIS7 以进行测试。

当我通过“localhost”访问站点时,它看起来与使用 IP 地址或机器名访问时不同?

我已清除缓存并重新加载页面进行确认,但它们仍然看起来不同。必须加载 CSS 以提供正确的字体/颜色等,尽管 ":hover" 元素的加载速度似乎要慢得多?

如果这有助于发现问题,我正在网站上使用 JQuery/JQueryUI?

有什么想法吗?

编辑:更多信息

标题、标签和表格定义是从 ViewBag.Title 构建的,或者在 ViewModel 中循环遍历行 - 没什么聪明的,只是标准的 MVC3/Razor 东西。

每个页面都使用相同的 css 文件,IE8 中的 F12 显示已加载正确的 css。

标题/副标题字体大小/颜色正确,只是它们的位置不对? 表格边框显得更粗? 定位一般看起来有点“out”,但我不明白为什么会有这种差异?

防火墙/AV 包可以剥离定位吗?

【问题讨论】:

  • 当您单击“网站”按钮时,您能否检查在 IE 设置中的“隐私”或“安全”下是否定义了两者之一?在安全选项卡中,在检查之前也选择不同的区域。另外,在另一个浏览器中会发生什么?
  • 两者都显示为本地 Intranet,而不是“站点”中。
  • 两个版本在 FF 中看起来一样 - 所以猜测这是一个 IE 问题。不幸的是,当我们等待安装/配置测试服务器时,我的“快速测试人员”正在使用 IE - 所以他们看到了问题:(
  • 抱歉,为了清楚起见:FF 中的两个版本看起来都正确!使用顶部图像中的元素。
  • 嗯,好的。你说你在 IE 中使用 F12 工具进行调试。如果我没记错的话,您可以在该工具中看到/选择浏览器模式和文档模式(在 F12 工具的菜单末尾)您能否检查两种情况下的浏览器模式和文档模式是否相同。看起来好像一个域处于怪癖模式。

标签: css asp.net-mvc-3 iis-7 localhost ip-address


【解决方案1】:

每个页面使用相同的 css 文件,IE8 中的 F12 显示 已加载正确的 css。

开发者工具应该显示 IE 在站点的两个实例之间没有使用相同的“浏览器模式”/“文档模式”,因为这就是问题所在。 IE 默认为不同的模式,具体取决于您是否使用机器名称(除其他外)。

将此添加到您的<head> 应该可以解决问题:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

【讨论】:

  • +1。这种糟糕的技术被称为"Smart defaults",可能只是为了避免 Sharepoint 门户被破坏而设计的。我不是 100% 确定它们是否可以被标题覆盖(编辑:似乎可以。)
  • 好吧,如果这不是一个完整的 MSh*t 缸,请让我向后弯曲并称我为 Katie!完美运行 - 但不需要为此向页面添加一些内容 - 如果您想要不同的行为,您应该只添加一些内容。
  • 该死的@thirtydot,你比我快1分钟! :) 很高兴你找到了答案,凯蒂!
  • 我的 jQuery 动画在 IIS 中跳转,但在 localhost 中没有。这解决了它。谢谢!
  • 有人需要将 IE 带到谷仓的后面并在两眼之间射击......
【解决方案2】:

我遇到了类似的问题,本地开发站点的大小与生产服务器上的大小不同。原来我在查看开发版时忘记了缩放级别为90%......这个答案帮助我意识到:https://superuser.com/questions/315448/different-font-size-between-localhost-and-remote-server-in-firefox

【讨论】:

  • 缩放也是我的问题。
【解决方案3】:

我在 IE11 中遇到了完全相同的问题,我使用了这段代码

<meta http-equiv="X-UA-Compatible" content="IE=11">

现在无论是本地主机名还是我的机器名,页面总是渲染得很好。

【讨论】:

  • 这个问题有两年了,关于IE8,已经用类似的答案解决了。
【解决方案4】:

只是想补充一点,如果您使用 HTML5 标签(navheader 等),IE8 会在 localhost 和远程主机上呈现不同的效果。

如果你添加:

<!--[if lt IE 9]>
    <script>
        document.createElement('header');
        document.createElement('nav');
    </script>
<![endif]-->

那么 IE8 会在本地和远程主机上显示相同的内容。

【讨论】:

    猜你喜欢
    • 2012-03-24
    • 2013-02-16
    • 2023-02-04
    • 1970-01-01
    • 2010-12-22
    • 2013-01-30
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多