Dan*_* T. 7 c# asp.net font-face cors
我有一个带有iframe的页面,显示了一个外部页面.外部页面配置为从我的服务器下载CSS文件.
在CSS中,我添加了一个@font-face选择器:
@font-face {
font-family: "Special Font";
src: url("<%= Request.Url.GetLeftPart(UriPartial.Authority) + "/fonts/specialfont.ttf" %>");
}
Run Code Online (Sandbox Code Playgroud)
这会在Chrome中下载并显示字体,但在Firefox中,它会下载字体,但拒绝使用它.进行一些研究表明,这个问题是一个跨领域的政策问题.这里提到的解决方案之一:
是启用CORS头.但是,它提供的解决方案是在整个网站范围内:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)
而我只想为.TTF文件启用它.有没有办法通过使用HttpHandler或其他方法来做到这一点?
Jer*_*emy 10
您可以通过使用web.config中的location元素将配置规则限制为特定目录或文件来实现类似的功能.例如:
<configuration>
<location path="fonts/specialfont.ttf">
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
</system.webServer>
</location>
</configuration>
Run Code Online (Sandbox Code Playgroud)
虽然您可能希望为所有字体启用CORS,例如<location path="fonts">.
这个问题的答案有几个例子location.
| 归档时间: |
|
| 查看次数: |
3929 次 |
| 最近记录: |