【问题标题】:Css3pie works completely on localhost but only partially on remote serverCss3pie 完全在本地主机上工作,但仅部分在远程服务器上工作
【发布时间】:2012-03-29 04:18:21
【问题描述】:

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

问题在于它在服务器上的工作方式不同。首先它甚至根本不起作用,并且在 css 中附加了 pie.htc 行为的元素完全消失了,或者说变得透明了。

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

【问题讨论】:

  • 在这种特定情况下,将我们指向该站点可能会有所帮助。
  • 我知道,但客户希望网站保密,所以很遗憾我不能透露。所以我想我的目标是找到遇到同样问题并设法解决它的人
  • 是的,他们这样做了,因为他们在本地主机上这样做了。你显然没有看到这里的主要问题
  • 正确,我真的没看到。

标签: asp.net html css css3pie


【解决方案1】:

几种可能性:

1) .htc 文件未使用正确的 mime 类型提供。来自CSS3 PIE Known Issues

IE 要求 HTC 行为提供内容类型 “text/x-component”的标题,否则它将简单地忽略 行为。许多 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 中的相对路径相关的主要问题: 行为网址

IE 解释行为属性相对于源的 URL HTML 文档,而不是像其他所有文件一样相对于 CSS 文件 CSS 属性。这使得调用 PIE 行为不方便, 因为 URL 必须是:

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

PIE 解释的 CSS 属性中的 URL

PIE 不解析 CSS 样式表(这样做是不可接受的 慢);它让 IE 处理解析、选择器查询、级联、 等等,然后简单地询问它得到的属性值。这 意味着当 PIE 获得一个属性值时,它不知道 该值源自的上下文。

因此,对于包含 URL 值的属性(例如 border-image 或 -pie-background),PIE 无法解析这些 URL 相对于它们出现的 CSS 文件。它解决了他们 而是相对于 JavaScript 执行上下文,即 源 HTML 文档的位置。

【讨论】:

  • 感谢您的回答。绝对不是第二种情况,但说到第一种,我就不知道了。错误的内容类型是否可能导致部分应用饼图?
  • @Elwhis 如果代码在您的本地主机上运行良好并且在生产服务器上出现问题,则可能是路径或服务器配置问题。我以前没有见过部分应用程序,但似乎是可能的。您没有说 IIS 的版本,但很容易检查。直接在浏览器中加载 .htc 文件并查看响应标头(有很多方法可以获取此信息,但使用 Firefox 中的开发人员工具扩展:信息 -> 查看响应标头)。这将为您提供内容类型,可能还有 IIS 的版本。
  • ok,所以内容类型没问题,就是text/x-component,IIS版本是6.0
  • @Elwhis 好吧,它必须在服务器上,因为它可以在您的本地计算机上运行。如果您不愿意分享服务器 url,我真的不知道我们能提供什么帮助。我最后的建议是使用 IE 中的开发者工具来查看是否报告了任何错误。
猜你喜欢
  • 2015-06-19
  • 1970-01-01
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-04
相关资源
最近更新 更多