Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
@字体导入在脱机网站/不同主机中不起作用,仅在IE中通过CSS使用联机字体_Css_Internet Explorer_Font Face_Eot - Fatal编程技术网

@字体导入在脱机网站/不同主机中不起作用,仅在IE中通过CSS使用联机字体

@字体导入在脱机网站/不同主机中不起作用,仅在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

他很奇怪。我查看了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 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;