将字体提供给多个子域问题

时间:2016-03-22 18:49:36

标签: css .htaccess fonts font-face

我目前正在尝试创建一个可以由我的各个域访问的字体库。

我已经对此问题进行了大量研究,似乎问题源于“访问控制允许原点”必须在我的.htaccess文件中正确设置。

多次尝试后,我根本无法解决问题。

我已将其设置如下:

在我的服务器的根目录中,我创建了一个.htaccess文件。此文件包含

<IfModule mod_headers.c>
<FilesMatch "\.(eot|font.css|otf|ttc|ttf|woff|woff2)$">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
<IfModule mod_mime.c>
# Web fonts
AddType application/font-woff woff
AddType application/vnd.ms-fontobject eot

然后在我服务器上的根文件夹中包含包含我的各种域的文件夹。如下:

-ROOT Folder
     |
     -.htaccess
     -Fonts Folder (which contains the relevant font files to serve)
     -Domain 1 Root Folder
     -Domain 2 Root Folder
     -Domain 3 Root Folder
     -Domain 4 Root Folder

我确信我在某种程度上完全无能为力并且做了一些非常根本错误的事情,但是现在我无法看到它,所以对此问题的任何帮助都将非常感激。

2 个答案:

答案 0 :(得分:1)

你是以正确的方式......但是要确定,请检查Chrome控制台(例如),当您从主域以外访问时 - 您是否收到了一些错误或通知。也许是htaccess或错误的路径...但我们需要一个跟踪它。确保.htaccess文件位于包含共享库/字体的文件夹中。

嗯,只是为了确定,我会粘贴我的htaccess部分项目使用这种库使用(在我的情况下,我只授予这些域的权限):

<ifModule mod_headers.c>
    SetEnvIf Origin "http(s)?://(www\.)?(domain1.t.com|dom2.t.com|dom3.t.com|dom4.t.com)$" AccessControlAllowOrigin=$0$1
    Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
</ifModule>

或者只是

<ifModule mod_headers.c>
    Header add Access-Control-Allow-Origin *
</ifModule>

祝你好运。

答案 1 :(得分:0)

为了确认是否有其他人遇到此问题,我可以通过执行以下操作确认已解决。

1)创建一个.htaccess文件

2)将以下代码插入.htaccess文件:

<ifModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www\.)?(domain1.t.com|dom2.t.com|dom3.t.com|dom4.t.com)$" AccessControlAllowOrigin=$0$1
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin

3)在上面的代码中输入您要允许访问的域

(domain1.t.com | dom2.t.com | dom3.t.com | dom4.t.com)

应该成为:

(mydomain.com | mydomain2.com | mydomain3.com | mydomain4.com)

其中'mydomain.com'是您可以访问

的域名

4)将文件放在服务器的顶级ROOT目录中

您列出的域名现在应该能够在正确链接时访问您的字体。