在Orbeon上使用font-awesome(@ font-face不加载本地托管的字体)

时间:2017-03-01 11:23:11

标签: css fonts orbeon

我对Orbeon表格完全不熟悉(自上周以来)。

我们想在Orbeon表单中使用font = awesome库中的图标。使用官方JS CDN(包括properties-local.xml中的.js文件)这样做很好。使用另一个基于CSS的CDN(包括properties-local.xml中的.css文件)这样做也很好。

但是,为了安全起见,这些表单所运行的环境不允许访问外部世界。因此,文件需要在本地托管。

将CSS文件添加到我们的设置工作正常,包括从/forms/blah/assets/css/font-awesome.css加载的properties-local.xml中的.css文件

从/ forms / blah / assets / fonts /

加载字体失败

控制台日志错误显示呈现的页面正在尝试从正确的URI加载文件但是出现404错误。

我在官方文档和在线其他地方找到的最多内容是指加载字体以用于PDF生成。在基于Web的表单中是否有类似的字体用于显示?

非常感谢

1 个答案:

答案 0 :(得分:2)

预感到这是一个哑剧型问题。虽然我已经检查过Apache Tomcat在其web.xml中包含mime-mappings的字体文件(它确实如此)但我并没有想到Orbeon可能不会继承这些设置。

我在这里看到一篇关于类似内容的帖子:http://forum.primefaces.org/viewtopic.php?f=3&t=42002

将以下内容添加到我的/webapps/blah/WEB-INF/web.xml解决了这个问题:

<mime-mapping>
    <extension>eot</extension>
    <mime-type>application/vnd.ms-fontobject</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>otf</extension>
    <mime-type>font/opentype</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>ttf</extension>
    <mime-type>font/truetype</mime-type>
</mime-mapping>
<mime-mapping>
    <extension>woff</extension>
    <mime-type>application/font-woff </mime-type>
</mime-mapping>

Tomcat服务显然需要重启才能生效。

对/webapps/blah/WEB-INF/resources/page-flow.xml第22行进行以下修改:

<files path="(?!/([^/]+)/service/).+\.(gif|css|pdf|json|js|coffee|map|png|jpg|xsd|htc|ico|swf|html|htm|txt|svg|ttf|eot|woff|woff2)"/>

请注意,该字符串末尾添加 | ttf | eot | woff | woff2

希望能帮助其他任何人试图让这个去吧:)