2012-03-29 107 views
0

我有一个网站在线,它是一个用ASP.NET编写的网络应用程序。当我复制网站的HTML代码时,将其放入html文件并在localhost(Apache服务器)上运行,一切正常,CSS3PIE正常工作。Css3pie完全在本地主机上工作,但只在远程服务器上部分工作

问题是,在服务器上它的工作方式不同。首先,它甚至都没有工作,并且在css中附带pie.htc行为的元素完全消失或让我们说变得透明。

我偶然发现一个建议,说给定元素上的position: relative;将解决问题。它确实有,但一点也不令人满意。背景仍然是透明的,部分元素消失,悬停时,其他元素通过几个像素跳到一边。阴影工作,圆角也有工作,但没有渐变。

+0

指向我们的网站可能有助于在这种特定情况下。 – mystrdat 2012-03-30 15:10:52

+0

我知道,但客户希望该网站保密,所以很遗憾我无法透露它。所以我想我的目标是找到有同样问题并设法解决问题的人 – Elwhis 2012-03-30 20:08:40

+1

在这种情况下,我只能说http://dowebsitesneedtolookexactlythesameineverybrowser.com/ – mystrdat 2012-04-04 14:16:17

回答

2

几个可能的原因:

1).htc文件不被送达正确的MIME类型。从CSS3 PIE Known Issues

IE要求HTC行为供应了一个内容类型“文本/ x分量”的 头,否则将简单地忽略该 行为。许多Web服务器已预先配置为提供正确的 内容类型,但其他Web服务器不是。

如果您在未应用PIE行为时遇到问题,请检查 您的服务器配置,并在可能的情况下将其更新为使用正确的 内容类型。对于Apache,你可以在.htaccess文件做到这一点:

AddType text/x-component .htc 

运行IIS的服务器上的问题的行为?如果是这样,哪个版本的IIS? IIS 5 or higher should have the mime-type for .htc configured correctly

2)也许这是一个路径问题,再次从CSS3 PIE known issues

相对路径

有在CSS相关的相对路径的两个主要问题: 行为URL

IE解释相对于源文件的行为属性的URL,而不是像每个其他文件相对于CSS文件呃 CSS属性。这使得调用PIE行为不方便, 因为URL必须或者是:

从域根绝对 - 这使得CSS目录之间不容易移动的 - 或者, 相对于HTML文件 - 这使得CSS不容易在不同的HTML文件之间重复使用。

网址在PIE解释的CSS属性

PIE不解析CSS样式表(这样做将是不可接受的 慢);它可以让IE处理解析,选择器查询,级联,等等,然后简单地询问它的结果属性值。这个 意味着当PIE获得一个属性值时,它不知道该值源于哪个上下文。因此,对于包含URL值的属性(如 border-image或-pie-background),PIE无法解析相对于它们出现的CSS文件的那些URL 。它将它们解析为 ,而不是相对于JavaScript执行上下文,它是源HTML文档的 位置。

+0

感谢您的回答。这绝对不是第二种情况,但是当谈到第一种情况时,我不知道。是否有可能错误的内容类型可能导致部分应用该派? – Elwhis 2012-03-29 09:16:21

+0

@Ellwhis如果代码在本地主机上运行良好,并且在生产服务器上有问题,则可能是路径或服务器配置问题。我以前没有看到过部分应用程序,但看起来有可能。你没有说什么版本的IIS,但很容易检查。直接在浏览器中加载.htc文件并查看响应标头(有很多方法可以获得此信息,但是Firefox中的开发者工具扩展:Information - > View Response Headers)。这会给你内容类型,也可能是IIS的版本。 – steveax 2012-03-30 16:40:26

+0

好吧,所以内容类型是好的,它是文本/ x组件, IIS版本是6.0 – Elwhis 2012-03-30 20:06:30