【问题标题】:Why don't web fonts in Firefox work on a different domain?为什么 Firefox 中的网络字体不能在不同的域上工作?
【发布时间】:2011-02-02 06:22:41
【问题描述】:

我在 Firefox 3.5 中试验 fancy new OpenType font capability 时遇到了问题。我试图将字体嵌入到与将要使用的页面不同的域中,但它不起作用。我认为这可能是一个错误,但从我在 MDC 参考页面上阅读的内容中,我注意到了这个注释:

在 Gecko 中,网络字体受到相同的域限制(字体文件必须与使用它们的页面位于同一域中),除非使用 HTTP 访问控制来放宽此限制。

看起来他们是故意这样设计浏览器的。出于好奇,他们为什么要这样做?嵌入字体是否存在安全风险?或者是为了合法商标或版权问题?还是别的什么?

【问题讨论】:

  • 我知道有些字体是受版权保护的,在网页中使用它们可能会受到法律限制。我在问这是否与他们决定对他们强制执行跨域标准有关。对我来说,这似乎不是防止使用受版权保护字体的一种非常有效的方法。

标签: firefox fonts css font-face


【解决方案1】:

法律商标和版权问题有时会限制嵌入字体时基于域的使用。

编辑: 这就是为什么您应该始终查看您可能购买的字体许可证上的小字母。如果您创建了它,那么您就拥有完全的所有权并且完全没有问题。

P.S:我不是律师,但可以和我的几个客户确认这个案子。

【讨论】:

    【解决方案2】:

    如果您想绕过它,可以尝试将其添加到您的 .htaccess 中:

    Header set Access-Control-Allow-Origin *
    

    为了回答你的问题,这可能与 Firefox 3.5 版支持cross-origin sharing standard 的事实有关。

    【讨论】:

    • 我了解了标准,并且知道如何设置访问控制标头。我在问他们为什么决定对字体进行这些限制。
    • “CSS @font-face 构造禁止跨域加载。通过资源共享策略,某人可以建立一个 Web 服务,将字体许可证出售给选定的服务器,并为它们处理缓存和带宽使用。 "从源头
    • 请注意,必须在包含字体的站点上设置此标头。我遇到这种情况是因为我的字体在 static.example.com 上,但我的网站是 www.example.com。在类似的情况下,最好指定允许访问的站点,以防止有人盗链您的字体,如下所示:Header set Access-Control-Allow-Origin: http://www.example.com
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    相关资源
    最近更新 更多