@字体导入在脱机网站/不同主机中不起作用,仅在IE中通过CSS使用联机字体
他很奇怪。我查看了MIME类型,添加了一个@字体导入在脱机网站/不同主机中不起作用,仅在IE中通过CSS使用联机字体,css,internet-explorer,font-face,eot,Css,Internet Explorer,Font Face,Eot,他很奇怪。我查看了MIME类型,添加了一个.htaccess文件 <FilesMatch "\.(ttf|otf|eot|woff)$"> <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule> </FilesMatch> AddType application/vnd.ms-fontobject .eot AddType ap
.htaccess
文件
<FilesMatch "\.(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
AddType application/vnd.ms-fontobject .eot
AddType application/octet-stream .otf .ttf
我在这方面做了很多研究,我知道文档类型可能会妨碍这一点。我使用的是UTF-8,其中css以@charset“UTF-8”开头代码>和我的HTML文件也以以下内容开头:
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
字体目录。htaccess:
<FilesMatch "\.(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>
AddType application/vnd.ms-fontobject .eot
AddType application/octet-stream .otf .ttf
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
截图:
使用src:url('../includes/fonts/Font.eot')导入字体代码>
使用src:url('http://sub-domain.domain.com/includes/fonts/font.eot');代码>
使用src:url('http://www.sub-domain.domain.com/includes/fonts/font.eot');代码>
不确定IE创建两种字体时都使用http://www.
和http://
但它现在似乎已经停止工作。实际问题
我们通过修复@font-face代码使字体在IE9中工作,并将问题缩小到EOT文件
这里的问题是字体文件本身中的fontname和family name设置。出于某种原因,IE6-8对这两个属性的不同存在问题(但并非总是如此,因为我在我的网站上使用的自定义字体对每个属性都有不同的名称,并且在任何情况下都可以正常工作)
我从他那里得到了原始的OTF文件,使用FontForge将“fontname”、“family name”和“人名”设置为相同,然后将字体保存为TTF,并将其在线转换为EOT格式
现在效果很好。我们为赚$#而做的事情!7.在IE工作
注意:我以前曾尝试将文件转换为EOT(不编辑文件属性),但没有成功
原始答案
如何引用字体文件?听起来好像您没有相对链接到它们,或者它们位于另一个域名/主机名上
如果您已绝对链接到它们,例如:http://www.domain.com/fonts/myfont.eot
您可以通过http://domain.com
,则您将遇到CORS问题。我遇到了这个问题,我以为这是IE的问题,结果我只是在一个浏览器上查看带有www
的网站,而没有IE
如果字体文件位于其他主机名或域上,则需要启用CORS,请阅读更多:
我用于@font-face的代码:
@font-face {
font-family: "Vitesse-Bold";
src: url('../includes/fonts/vitesse-bold.eot');
src: local('(*%$@#@'),
url('../includes/fonts/vitesse-bold.woff') format('woff'),
url('../includes/fonts/vitesse-bold.ttf') format('truetype'),
url('../includes/fonts/vitesse-bold.svg') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "Flama-Bold";
src:url('../includes/fonts/flama-bold.eot');
src: local('(*%$@#@'),
url('../includes/fonts/flama-bold.woff') format('woff'),
url('../includes/fonts/flama-bold.ttf') format('truetype'),
url('../includes/fonts/flama-bold.svg') format('svg');
font-weight: normal;
font-style: normal;
}
使用类似于:
font-family: "Vitesse-Bold", Verdana, sans-serif;
注意:
使用src:local(“(*%$@#@”)
不受绝对url路径是否有效的支持(只要您还访问带有/不带有www
)的站点?我不知道您所说的“IE正在创建这两个…”是什么意思如果您使用的是相对引用,则不需要CORS代码或任何.htaccess内容。@font-face代码是否仅存在于文档头部引用的标准.css文件中?请尝试删除src:url('../includes/fonts/vitesse bold.eot?#iefix')格式('embedded-opentype'),
这两行代码,我以前从未见过,也从未需要过。这不需要特定的.htaccess
代码,也不需要CORS代码-删除这些代码,看看会发生什么如果只是IE出现问题,.eot
文件可能被填满,试着生成一个新的:有可能我看到这种情况发生吗ive?IE出现问题是正常的,也是意料之中的。它充其量是无能的,是地球上最糟糕的浏览器。
@font-face {
font-family:'Vitesse-Bold';
src:url('../includes/fonts/vitesse-bold.eot');
src:url('../includes/fonts/vitesse-bold.eot?#iefix') format('embedded-opentype'),
url('../includes/fonts/vitesse-bold.woff') format('woff'),
url('../includes/fonts/vitesse-bold.ttf') format('truetype'),
url('../includes/fonts/vitesse-bold.svg#vitesse-bold') format('svg');
font-weight:normal;
font-style:normal;
}
@font-face {
font-family:'Flama-Bold';
src:url('../includes/fonts/flama-bold.eot');
src:url('../includes/fonts/flama-bold.eot?#iefix') format('embedded-opentype'),
url('../includes/fonts/flama-bold.woff') format('woff'),
url('../includes/fonts/flama-bold.ttf') format('truetype'),
url('../includes/fonts/flama-bold.svg#flama-bold') format('svg');
font-weight:normal;
font-style:normal;
}
@font-face {
font-family: "Vitesse-Bold";
src: url('../includes/fonts/vitesse-bold.eot');
src: local('(*%$@#@'),
url('../includes/fonts/vitesse-bold.woff') format('woff'),
url('../includes/fonts/vitesse-bold.ttf') format('truetype'),
url('../includes/fonts/vitesse-bold.svg') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: "Flama-Bold";
src:url('../includes/fonts/flama-bold.eot');
src: local('(*%$@#@'),
url('../includes/fonts/flama-bold.woff') format('woff'),
url('../includes/fonts/flama-bold.ttf') format('truetype'),
url('../includes/fonts/flama-bold.svg') format('svg');
font-weight: normal;
font-style: normal;
}
font-family: "Vitesse-Bold", Verdana, sans-serif;