【问题标题】:Cross Domain error while using fonts使用字体时出现跨域错误
【发布时间】:2014-11-27 05:25:44
【问题描述】:

我在尝试使用 http://www.example.com 而不是 http://eample.com 访问我的网站时遇到错误。我的字体图标不会加载。因此,在寻找解决方案时,我遇到了 以下解决方案将以下代码添加到服务器上的 .htaccess 文件中。

<FilesMatch "\.(svg|ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
    Header set Access-Control-Allow-Origin "http://example.com, http://www.example.com"
</IfModule>

这设法解决了问题,但仅适用于 Chrome。如何解决所有浏览器的问题。

谢谢

【问题讨论】:

  • 你如何包含你的字体?修复可以像使用相对 URL 不是绝对的一样简单,而不是弄乱你的 .htaccess 文件。
  • 字体存储在根目录下名为 fonts 的目录中。然后我使用的css文件是href="example.com/css/font-awesome.min.css"
  • 如果您强制使用 WWW cname,该问题将得到解决。可能与apache redirect from non www to www 重复

标签: php .htaccess fonts cross-domain


【解决方案1】:

尝试使用:

href="/css/font-awesome.min.css"

这将与他们访问者所在的域相关,因此如果他们连接到 http://http://www,字体将会加载并且不会出现跨域错误

【讨论】:

  • 谢谢卡尔,感谢您的回答,我解决了这个问题。我没有使用 /css/... 的最初原因是因为我将标题内容存储在单独的 header.php 文件中,然后将其包含在所有其他文件中。这意味着如果页面存储在子文件夹中,/css/... 路径将中断。因此,我必须定义一个常量来接收输入浏览器的 url,并将其添加到所有 css 和 js 链接中。
猜你喜欢
  • 1970-01-01
  • 2021-11-26
  • 2015-08-30
  • 1970-01-01
  • 2016-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-16
相关资源
最近更新 更多