【问题标题】:@fontface works on http://www.domain.com but doesn't work on http://domain.com@fontface 适用于 http://www.domain.com 但不适用于 http://domain.com
【发布时间】:2012-01-05 02:41:27
【问题描述】:

@fontface 在我加载 http://www.grozav.com 时有效,但在 http://grozav.com 上无效。

我能做些什么来解决这个问题?

 @font-face {
    font-family: Impact;
    font-weight:bold;
    src: url('http://grozav.com/font/impact.ttf');
    src: url('http://www.grozav.com/font/impact.ttf');}

@font-face {
    font-family: MisterGiacco-Bold;
    font-weight:bold;
    src: url('http://grozav.com/font/giacco.ttf');
    src: url('http://www.grozav.com/font/giacco.ttf');}

我尝试放置 2 个网址。没用。有人可以帮我解决这个问题吗?

【问题讨论】:

  • 什么浏览器?可以提供截图吗?在我看来,它们在 Chrome 17、OS X 上是一样的。您是否尝试过清除缓存?
  • 我可以在 FF9 Win7 64bit 中确认它不起作用。
  • 我看到你已经解决了。但是,我会将所有流量从www.grozav.com 重定向到grozav.com,首先是因为使用www 作为前缀是多余且过时的,但主要是因为否则搜索引擎可能会将两者索引为不同的页面,而用户可能会得到感到困惑,因为当他们输入 grozav.com/so 时,自动完成功能不起作用,因为之前他们浏览的是 www.grozav.com/something 而不是 grozav.com/something,反之亦然。

标签: css http fonts web font-face


【解决方案1】:

为什么要指定完整的 URL?简单地说:

src: url('/font/giacco.ttf');

@fontface 可能无法跨域工作。 FireFox 对此有疑问。

但是,如果您使用的是同一域中的文件,请不要指定完整的域,只需提供 ttf 文件的路径即可。

【讨论】:

  • 在哪些浏览器中不能跨域工作?似乎在 Chrome 中为我工作。
  • @dotweb - 见编辑。虽然我可能是错的,但无论哪种方式,这个问题都可以通过不提供域来避免。似乎没有必要。
  • 这也适用于切换到 https,尽管您可以转到协议相对://grozav.com/font/impact.ttf... 但这无助于解决 www 问题。跨度>
【解决方案2】:

肯定是网址,但为什么呢?显然@font-face 不关心跨域问题,但 firefox 关心,所以为了让它在 Firefox 中与跨域一起工作,你应该设置你的服务器(apache?)以避免一个或多个域的这种限制,下一页有一些关于此的信息: http://www.cssbakery.com/2010/07/fixing-firefox-font-face-cross-domain_25.html

我想最简单的选择是@Curt 的选择;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 2019-02-28
    • 2015-01-05
    • 2018-07-20
    • 2013-11-30
    相关资源
    最近更新 更多