当我的应用程序处于离线状态时,我一直无法正确显示 webfonts(特定的字体很棒)。

所以我在 list 中有我的字体

fonts/fontawesome-webfont.ttf?v4.1.0

当应用程序首次在线加载时,ttf 文件会加载并存储在应用程序缓存中并正确显示。

但是,一旦您断开网络以便应用程序离线运行,除了基于字体的图标(它们显示为方框,好像字体尚未加载一样)之外,一切正常

我查看了 chrome 的 appcache (chrome://appcache-internals),文件就在那里
Explicit,   https://mysite.com/fonts/fontawesome-webfont.ttf?v4.1.0 141 kB

我可以访问文件,标题似乎正确
HTTP/1.1 200 OK
Content-Type: font/ttf
Last-Modified: Fri, 23 May 2014 07:40:31 GMT
Accept-Ranges: bytes
ETag: "cbe2e465a76cf1:0"
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
Date: Thu, 05 Jun 2014 08:05:57 GMT
Content-Length: 141564

chrome 中有一些可疑的东西。
Application Cache Error event: Manifest fetch failed (6) https://mysite.com/appcache.manifest

但我认为这仅仅是因为应用程序处于离线状态并且无法获得更新的 list

第二个是
Resource interpreted as Font but transferred with MIME type text/html: "https://mysite.com/fonts/fontawesome-webfont.ttf?v=4.1.0"

这是我能看到的唯一可能是原因的事情。

任何见解都会很棒,提前致谢!

最佳答案

为了让这个功能在我的项目中工作,我必须将以下内容添加到 appcache。

CACHE:
#path to fa css
public/styles/fonts/FontAwesome.otf
public/styles/fonts/fontawesome-webfont.eot
public/styles/fonts/fontawesome-webfont.svg
public/styles/fonts/fontawesome-webfont.ttf
public/styles/fonts/fontawesome-webfont.woff

NETWORK:
*

FALLBACK:
/public/styles/fonts/fontawesome-webfont.woff public/styles/fonts/fontawesome-webfont.woff
/public/styles/fonts/fontawesome-webfont.eot public/styles/fonts/fontawesome-webfont.eot
/public/styles/fonts/fontawesome-webfont.svg public/styles/fonts/fontawesome-webfont.svg
/public/styles/fonts/fontawesome-webfont.ttf public/styles/fonts/fontawesome-webfont.ttf
/public/styles/fonts/FontAwesome.otf public/styles/fonts/FontAwesome.otf

即使图标已被缓存,网络仍在发出对图标的请求。添加图标的后备捕获请求并提供缓存版本。

关于html - Webfont( Font Awesome )目前不工作离线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24055244/

10-13 01:50