我在客户端站点上使用@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)