【问题标题】:CSS3 filter working on localhost but not on remote hostCSS3过滤器在本地主机上工作,但不在远程主机上
【发布时间】:2014-10-17 15:25:26
【问题描述】:

我目前面临一个我不知道如何解决的问题。在对某些图像应用 CSS3 灰度过滤器时,它可以在我的本地主机上运行,​​但在实时站点上,图像显示为白色(即不可见)。

相关CSS:

.preview .preview-thumb {
  width: 200px;
  height: 150px;
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
  filter: url(grayscale.svg#greyscale);
  filter: gray;
}

.preview:hover .preview-thumb {
  -webkit-box-shadow: 0 0 3px 3px gray;
  -moz-box-shadow: 0 0 3px 3px gray;
  box-shadow: 0 0 3px 3px gray;
  -webkit-filter: none;
  -moz-filter: none;
  -ms-filter: none;
  -o-filter: none;
  filter: none; 
}

相关 HTML:

<div class="preview-container" data-category-id="3">
  <div class="preview">
    <a href="project.php?id=3">
      <img class="preview-thumb" src="projects/architectuur/Masterproject Wilsele/grote maquette.jpg"/>
    </a>
    <span class="preview-name">Masterproject Wilsele</span>
  </div>
</div>

相关目录结构:

/
  css
    grayscale.svg
    style.css
  page.html

本地主机上的正确输出: 远程主机(实时站点)上的输出不正确:

两个屏幕截图都是使用相同的浏览器(Ubuntu 14.04 上的 Firefox 33.0)制作的。在 Ubuntu 14.04 上使用 Chrome(版本 38.0.2125.104(64 位))时一切正常,所以我的猜测是问题源于 url(grayscale.svg#greyscale) hack。

关于如何解决这个问题的任何想法?我使用的 SVG 文件是从 this site 下载的。

【问题讨论】:

  • 把html.您可能遇到 URL 引用问题。我的意思是服务器上的 URL 可能指向错误的位置
  • @RobertLongson 我的 html 中没有基本标记。相关页面为corporaal.be/projects.php
  • 你解决了什么问题吗?我在 Mac 上的 Chrome v38 上看起来不错。

标签: html css firefox svg


【解决方案1】:

每当人们对 SVG 文件遇到“来自本地主机但不能来自远程服务器”的问题时,几乎总是证明您的 Web 服务器没有为您的 SVG 文件返回正确的 MIME 类型。

确保网络服务器返回您的 grayscale.svg 文件,内容类型为“image/svg+xml”。最简单的检查方法是使用浏览器开发工具中的“网络”选项卡。

更新

查看您的实际站点后,我在控制台中发现了此警告:

Content Security Policy: The page's settings blocked the loading of a resource at
          http://corporaal.be/css/grayscale.svg ("default-src 'none'").

您需要修改内容安全策略标头以允许加载 SVG。尝试将 default-src 更改为“self”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-20
    • 2015-06-19
    • 2021-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    相关资源
    最近更新 更多