Web服务器上的CSS呈现方式与开发环境上的不同

我有这个问题,在我的开发环境中创build的Web应用程序,我上传到Web服务器后,显示不同。

我使用相同的浏览器和相同的机器来查看页面。 唯一不同的是“服务器”。 我正在使用.net 3.5,并在我的开发环境中使用ASP.net开发服务器来提供页面。 在Web服务器上,页面使用IIS 6.0提供。

我只有一个包含在“App_Themes / Default”文件夹中的CSS文件,用于控制我的应用程序中的所有CSS。

以下是一些不显示相同的内容:

1)我有一个可折叠的面板控件,当展开应该显示在所有其他页面元素之上。 在开发环境中,它的行为是正确的。 在Web服务器上,面板在其他元素下面滑动。

2)我有我的元素定义的背景和一定的字体大小。 在我的开发环境中显示时,文本显示在一行上。 但是,在Web服务器上,即使文本大小相同,文本也会被包装。 就好像包含div是“小”的。

3)开发环境与Web服务器之间的宽度不一致(宽度由button文本决定)。 服务器上的botton总是更宽。

我检查了一下,确保服务器上和我的开发环境中的machine.config和global web.config中没有其他CSS元素的引用。

我知道服务器正在从CSS读取,因为一般来说,它看起来相似(相同的颜色,背景,字体样式等)。 这只是大小似乎closures和divs的分层。

有没有人遇到过这个问题? 任何想法,我可以寻找什么?

看起来像是在Internet Explorer 8中进行比较。微软为本地和互联网服务器引入了不同的呈现模式,这样Web开发人员就会泪stream满面。

如果没有X-UA兼容值,并且站点位于本地Intranet安全区域中,则默认情况下将以EmulateIE7模式呈现。

添加X-UA兼容的头或META强制完全IE8标准模式。

另见http://sharovatov.wordpress.com/2009/05/18/ie8-rendering-modes-theory-and-practice/

我们也遇到了兼容模式的问题,所以我刚刚添加了:

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

因为我知道它在IE7,8和9中工作正常。

这至less听起来像是生产服务器向HTML添加了一个XML声明或更改了导致页面以非标准兼容模式呈现的文档types。 这也被称为怪异模式,你在MSIE中看到这个很好的回来。 您描述的症状可以识别为MSIE中的盒式模型错误 。

右键单击页面并检查HTML源代码。 他们是完全一样的吗? (包括meta标签,xml声明,空白等)

如果从Windows到Linux进行FTP传输,请确保以二进制模式传输,以确保空格(空格,换行符)保持不变。 此外,请确保您将文档保存为UTF-8 (或至lessISO-8859-1 ), ISO-8859-1要将其保存为MS专有的编码,例如CP1252

对于那些在Intranet站点设置中遇到此问题的用户,如果选中“在兼容性视图中显示Intranet站点”(在很多情况下),则元标记将无法解决问题,

您必须在服务器级别发送HTTP响应头,请参阅此处

我在Google Chrome中遇到同样的问题。 显然,如果页面放大或缩小,媒体查询就会搞乱。 确保两个网站的缩放级别都是100%。

Juste将其添加到您的web.config文件中:

 <system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=8" /> </customHeaders> </httpProtocol> </system.webServer> 

我们有同样的问题,固定在IE9和IE11与此:

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

对我来说,Internet Explorer的Compatibility View Settings是个问题:

访问兼容性视图设置

兼容性视图设置

checkbox未被设置后 ,CSS呈现完美

来自服务器的CSS可能是较旧的caching版本 – 尝试使用Ctrl + F5刷新页面,以便重新请求。

我遇到过同样的问题。 我们的networking始终使用Win7和IE11。 对我来说,解决方法是在我的本地机器上添加“localhost”到IE兼容性设置>“添加到兼容性视图中的网站”列表中。 IE>工具>兼容性查看设置

顺便说一下,我们的NA让每台机器都将IE11设置为“通过组策略自动检查在”兼容性视图中显示Intranet站点“。

当“服务器”版本以某种方式被caching时,这经常发生在我身上。 刷新做了伎俩。 扔掉“临时互联网文件”也是如此。

我刚刚有这个问题。 我改变了我的样式表和HTML代码。 它在本地看起来不错,但在服务器上没有工作。 我发现,在Visual Studio的CSS文件的“复制到输出目录”被设置为“不要复制”。 所以我的CSS更新没有得到部署。 有时问题只是用户错误。

尝试这个,。

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

可能是由于缩小造成的,例如在你的开发机器上

 <span>AAA</span> <span>BBB</span> 

但是在远程服务器上它变成了

 <span>AAA</span><span>BBB</span> 

他们之间的空间会丢失。