我遇到这个问题,我在开发环境中创建的Web应用程序在将其上传到Web服务器后显示不同。
我使用相同的浏览器和同一台机器来查看页面。唯一不同的是“服务器”。我正在使用.net 3.5,在我的开发环境中,页面是使用ASP.net开发服务器提供的。在Web服务器上,使用IIS 6.0提供页面。
我只有一个CSS文件包含在“App_Themes / Default”文件夹中,用于控制我应用程序中的所有CSS。
以下是一些不显示相同内容的内容:
1)我有一个可折叠的面板控件,当展开时应该显示在所有其他页面元素之上。在开发环境中,它的行为正确。在Web服务器上,面板在其他元素下滑动。
2)我的元素定义为背景和某个字体大小。在我的开发环境中显示时,文本显示在一行上。但是,在Web服务器上,即使文本大小相同,文本也会被包装。这就好像包含的div以某种方式呈现为“更小”。
3)开发环境和Web服务器之间没有固定宽度(因此宽度由按钮文本确定)的按钮宽度不同。服务器上的底部总是更宽。
我检查过以确保服务器和开发环境中的machine.config和global web.config中没有对其他CSS元素的引用。
我知道服务器正在从CSS中读取,因为一般来说,它看起来很相似(相同的颜色,背景,字体样式等)。这只是大小似乎是关闭和div的分层。
之前有没有人遇到此问题?我能找到什么想法?
答案 0 :(得分:77)
看起来您正在Internet Explorer 8中对它们进行比较.Microsoft为本地和Internet服务器引入了不同的呈现模式,以便Web开发人员能够流泪。
如果没有X-UA兼容值且网站位于 将呈现本地Intranet安全区域 默认情况下,在EmulateIE7模式下。
添加兼容X-UA的标头或META以强制执行完整的IE8标准模式。
另见http://sharovatov.wordpress.com/2009/05/18/ie8-rendering-modes-theory-and-practice/
答案 1 :(得分:19)
我们也遇到兼容模式的问题,所以我最后只是添加:
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
因为我知道它在IE7,8和9中运行良好。
答案 2 :(得分:11)
我在Google Chrome中遇到了同样的问题。如果页面放大或缩小,显然媒体查询会搞砸。确保两个站点的缩放级别均为100%。
答案 3 :(得分:10)
这至少听起来像生产服务器向HTML添加了xml声明或更改了导致页面以非标准兼容模式呈现的doctype。这也称为怪癖模式,你在MSIE中看到这个非常好的。您描述的症状可识别为box model bug in MSIE。
右键单击页面并检查HTML源代码。他们都完全相同吗? (包括元标记,xml声明,空格等)
如果您是从Windows到Linux的FTP,请确保您以二进制模式进行传输,以确保空白(空格,换行符)保持不变。另外,请确保您将文档保存为UTF-8
(或至少ISO-8859-1
),而不是CP1252
等MS专有编码。
答案 4 :(得分:9)
对于那些在Intranet站点设置中遇到此问题的人,如果选中“在兼容性视图中显示Intranet站点”(在很多情况下都是这样),则元标记将无法解决问题
您必须在服务器级别发送HTTP响应标头,请参阅here
答案 5 :(得分:6)
来自服务器的CSS可能是较旧的缓存版本 - 尝试使用Ctrl + F5刷新页面,以便重新请求它。
答案 6 :(得分:6)
答案 7 :(得分:5)
我们遇到了同样的问题,修复了IE9&amp; IE11用这个:
<head>
<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
</head>
答案 8 :(得分:4)
Juste将此添加到您的web.config文件中:
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=8" />
</customHeaders>
</httpProtocol>
</system.webServer>
答案 9 :(得分:1)
我有同样的问题。我们的网络始终使用Win7和IE11。对我来说,解决方案是在我的本地机器上添加&#34; localhost&#34;到IE的兼容性设置中的列表&gt; &#34;您已添加到兼容性视图&#34;的网站。 IE&gt;工具&gt;兼容性查看设置。
BTW我们的NA让每台机器都将IE11设置为&#34;在兼容性视图中显示内部网站点&#34;由组策略自动检查。
答案 10 :(得分:0)
我刚遇到这个问题。我改变了我的样式表和HTML代码。它在本地看起来很棒,但在服务器上不起作用。我发现在Visual Studio中,CSS文件的“复制到输出目录”设置为“不复制”。所以我的CSS更新没有得到部署。有时问题只是用户错误。
答案 11 :(得分:-1)
当“服务器”版本以某种方式缓存时,这经常发生在我身上。刷新成功了。抛弃“临时互联网文件”也是如此。
答案 12 :(得分:-2)
试试这个。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" />
答案 13 :(得分:-2)
可能由缩小引起,例如在dev机器上你有
<span>AAA</span>
<span>BBB</span>
但在远程服务器上它变为
<span>AAA</span><span>BBB</span>
它们之间的空格会丢失。