0

我在客户端站点上使用@font-face 图标,并且在我们的开发服务器上一切正常。然而,在我们的客户端主机上,它们在 Chrome、Firefox 和 Safari 中呈现为空字符。

  • 我尝试将字体文件夹和文件本身的权限更改为 777
  • Chrome 开发者工具显示下载的字体文件为 200 状态
  • 我们的开发服务器在 Chrome 中生成此警告,“资源解释为字体但使用 MIME 类型应用程序/八位字节流传输”。在客户端的服务器上,我们得到“资源解释为字体但使用 MIME 类型文本/html 传输”。我更新了 .htaccess 文件,但它仍然有相同的警告。

CSS:

@font-face {
    font-family: 'fire';
    src: url("../fonts/fire.eot");
    src: url("../fonts/fire.eot?#iefix") format("embedded-opentype"),
         url("../fonts/fire.woff") format("woff"),
         url("../fonts/fire.ttf") format("truetype"),
         url("../fonts/fire.svg#fire") format("svg");
    font-weight: normal;
    font-style: normal;
}

.htaccess 在 /wp/

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wp/index.php [L]
</IfModule>

# BEGIN MemberPress Rules
<IfModule mod_rewrite.c>
RewriteRule memberpress\/lock\.php$ - [L]
RewriteCond %{REQUEST_URI} !\.  (php|phtml|jpg|jpeg|gif|css|png|js|ico|PHP|PHTML|JPG|JPEG|GIF|CSS|PNG|JS|ICO)
RewriteCond %{REQUEST_URI} !^/wp/(wp-admin|wp-login.php|wp-comments-post.php|xmlrpc.php)
RewriteRule . /wp/wp-content/plugins/memberpress/lock.php [L]
</IfModule>
# END MemberPress Rules

# END WordPress

我猜这是服务器问题,但除了 ftp 信息之外,我对他们的服务器了解不多,但如果需要,我可能会获得更多访问权限。我还包括了 .htaccess 文件的 wordpress 位,因为我不确定这是否会影响我添加的规则。

有任何想法吗?在使用@font-face 之前我从来没有遇到过问题。

编辑——解决了!

我们设法解决了这个问题。原来是 Wordpress 插件Memberpress阻止了该文件。

我在 .htaccess 文件的这一行中添加了字体文件扩展名:

RewriteCond %{REQUEST_URI} !\.(php|phtml|jpg|jpeg|gif|css|png|js|ico|eot|ttf|otf|woff|svg|PHP|PHTML|JPG|JPEG|GIF|CSS|PNG|JS|ICO|EOT|TTF|OTF|WOFF|SVG)
4

0 回答 0