- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 font-awesome 和 PWA 离线模式有疑问。当我的应用程序加载时,它会缓存构建的生产包中的所有内容,以及 Font Awesome 文件。
当我切换到“离线”模式时出现问题,然后所有 Font Awesome 文件都会收到 504 网关超时错误,尽管它们缓存在服务工作线程中。
Font awesome css 是从节点模块导入的。
构建前的ngsw-config.json
{
"index": "/index.html",
"assetGroups": [
{
"name": "blackboard-app",
"installMode": "prefetch",
"resources": {
"files": [
"/fontawesome-webfont*",
"/favicon.ico",
"/index.html",
"/*.js",
"/*.css",
"/*.bundle.css",
"/*.bundle.js",
"/*.chunk.js",
"/!main*.js"
],
"urls": ["https://fonts.googleapis.com/icon?family=Material+Icons"]
}
},
{
"name": "assets",
"installMode": "prefetch",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**",
"/assets/logo/*",
"/assets/logo/logo.svg",
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
]
}
}
]
}
构建后的 ngsw-config.json
{
"configVersion": 1,
"index": "/index.html",
"assetGroups": [
{
"name": "blackboard-app",
"installMode": "prefetch",
"updateMode": "prefetch",
"urls": [
"/12.25bb4625035aa983286c.js",
"/13.493b0945aa3e48329f0c.js",
"/14.2fc43f30a2a3b5c66cc6.js",
"/15.3f977c68e010d85b993e.js",
"/16.f3761394d6b60e948cc1.js",
"/17.eab8f1a5c9827a594f1a.js",
"/18.111d970245c46f8c6e27.js",
"/19.f405adc50755f6bc8feb.js",
"/2.6976c64cb62cd456d4bd.js",
"/20.f7980e50fde809527317.js",
"/21.4915c7ddea43587e6614.js",
"/22.11c6cecea349cd960e2b.js",
"/3.e753f18ca29a1c70a074.js",
"/4.342862d374ddf89b8767.js",
"/5.04c193b1fe7a4b549c88.js",
"/6.82ca647ade8c794f0fc5.js",
"/7.7069b7766f8363eb04e9.js",
"/common.68d2f017a7dae628e8c5.js",
"/es2015-polyfills.1c08ca914fb3a70a67ba.js",
"/favicon.ico",
"/fontawesome-webfont.674f50d287a8c48dc19b.eot",
"/fontawesome-webfont.912ec66d7572ff821749.svg",
"/fontawesome-webfont.af7ae505a9eed503f8b8.woff2",
"/fontawesome-webfont.b06871f281fee6b241d6.ttf",
"/fontawesome-webfont.fee66e712a8a08eef580.woff",
"/index.html",
"/main.f08efb7a056c489b1b70.js",
"/polyfills.e93ae6dbbd46cede4a3a.js",
"/runtime.593a2fc9b4061ec94713.js",
"/scripts.ccad1d9b2f6939a49dad.js",
"/styles.1b1d0abb44dcb4d40a0d.css"
],
"patterns": [
"https:\\/\\/fonts\\.googleapis\\.com\\/icon\\?family=Material\\+Icons"
]
},
{
"name": "assets",
"installMode": "prefetch",
"updateMode": "prefetch",
"urls": [
"/assets/bg/bg.png",
"/assets/button/new.png",
"/assets/button/new.svg",
"/assets/button/watch-white.svg",
"/assets/button/watch.svg",
"/assets/icon/Absence_1.svg",
"/assets/icon/Absence_2.svg",
"/assets/icon/Absence_3.svg",
"/assets/icon/Absence_4.svg",
"/assets/icon/eating_0.svg",
"/assets/icon/eating_0_empty.svg",
"/assets/icon/eating_1.svg",
"/assets/icon/eating_1_empty.svg",
"/assets/icon/eating_2.svg",
"/assets/icon/eating_2_empty.svg",
"/assets/icon/eating_3.svg",
"/assets/icon/eating_3_empty.svg",
"/assets/icon/eating_4.svg",
"/assets/icon/eating_4_empty.svg",
"/assets/images/g_logo.png",
"/assets/images/karta_numer_min1.png",
"/assets/images/karta_numer_min_thumb.png",
"/assets/logo/logo.png",
"/assets/logo/logo.svg",
"/assets/logo/logo_kids.png",
"/assets/manifest/ep-192x192.png",
"/assets/manifest/ep-192x192_alternative.png",
"/assets/manifest/ep-192x192_white.png"
],
"patterns": []
}
],
"dataGroups": [],
"hashTable": {
"/12.25bb4625035aa983286c.js": "d85b3e1aca84a87856a4c8c3d4ffc74be4abba3d",
"/13.493b0945aa3e48329f0c.js": "276e65200141c59d50dac5cb33adda22d2a6bcc6",
"/14.2fc43f30a2a3b5c66cc6.js": "2e16036ee67b768cc564993337057def3acccc58",
"/15.3f977c68e010d85b993e.js": "39a8ba74f671f6b24e5ab6d35f21a164f77866c0",
"/16.f3761394d6b60e948cc1.js": "87eff94c9c15daaaf6c4619a372a60fae9994552",
"/17.eab8f1a5c9827a594f1a.js": "cda7bfdd20014ebe5e13b3f141cd31415a1e3ffd",
"/18.111d970245c46f8c6e27.js": "55fd5e02d80e8b3385e1aa335dc597cdd3fa0e36",
"/19.f405adc50755f6bc8feb.js": "18600d2bd1448a9b6c0e9475e83895a3d37becc9",
"/2.6976c64cb62cd456d4bd.js": "1c71d12f908cc42d9b5267be1da747c5cf0cd0d2",
"/20.f7980e50fde809527317.js": "f6f6c10b30d62e54c2a2ad1bd66f8f3e41661393",
"/21.4915c7ddea43587e6614.js": "1dcaf73e75071a69bc0a3beec886d8d68b1853a5",
"/22.11c6cecea349cd960e2b.js": "9dc64f5af2110a1c199b005d6e32cc55b7cc78cb",
"/3.e753f18ca29a1c70a074.js": "329a5e0394cf14ed8c8be106bdd219f44545a3a7",
"/4.342862d374ddf89b8767.js": "e4198adff93d1f1687d23880bb86db75117301e6",
"/5.04c193b1fe7a4b549c88.js": "245c18593d1166323ec2c0a800db49ab6da53cf6",
"/6.82ca647ade8c794f0fc5.js": "a1aa9fc0c2b1665982f8b2875d283d0551990656",
"/7.7069b7766f8363eb04e9.js": "80816daee7e4f7517566b15280d4bce6106dc271",
"/assets/bg/bg.png": "e49d1e8293172e0d48713a93e2235abbd12555a2",
"/assets/button/new.png": "65829ad4727b2fc5dc2b3bc062e0ed635acf5723",
"/assets/button/new.svg": "b56b744cf78fbb60b5fad3cc98982ee84e090e22",
"/assets/button/watch-white.svg": "85c53dabf87c6436033bee3f8bf3baf94503610c",
"/assets/button/watch.svg": "850222e29dedf53834bafca514f9d6817d2d446e",
"/assets/icon/Absence_1.svg": "2db1ea93dae300caebfc527acb9fa0fbafb3bd9c",
"/assets/icon/Absence_2.svg": "f6dbaf15186913cd22ca94fe4e31cdcdde1b43a3",
"/assets/icon/Absence_3.svg": "f72b5e22de3956bc02a636ee7984f4ab120ffee9",
"/assets/icon/Absence_4.svg": "355888cfb00f0a9a6b616c2da355e80cdc3c6d85",
"/assets/icon/eating_0.svg": "c47672f723507317e3e1434efaa5a01fe4154d32",
"/assets/icon/eating_0_empty.svg": "e8f045fcc76d24cd8fb06c80d31f10320e1e1ae8",
"/assets/icon/eating_1.svg": "df226958df581c8d06e4d5b82f1edca35cbd5d4b",
"/assets/icon/eating_1_empty.svg": "d4773117471e5a60c59dfcbc5e54059880206554",
"/assets/icon/eating_2.svg": "8b9c5f654e2f172f26f797d69e9c2617cc2dab14",
"/assets/icon/eating_2_empty.svg": "eb92371a392eecd4dc3aa97b7c8dd904e0c9a573",
"/assets/icon/eating_3.svg": "5ae77a1a1a6fa303800d14548ef8df0172c0cf0c",
"/assets/icon/eating_3_empty.svg": "109a44345bf6b60feb64e21810733b00f2743f71",
"/assets/icon/eating_4.svg": "bab3d743c997daa5c3a4947f6de2a55cfa1b804c",
"/assets/icon/eating_4_empty.svg": "111abf9d2f66eb751ceb54932f783141aad24267",
"/assets/images/g_logo.png": "03f0aafffea0bd629d4f6165a10d715c511cc8b8",
"/assets/images/karta_numer_min1.png": "75bdd569752728ae4d9f01346dc3b4e60c6afde0",
"/assets/images/karta_numer_min_thumb.png": "afa37cf8bdcee35d0848c45ce6ec3aec78af7259",
"/assets/logo/logo.png": "c7511c629524498d06c1ba92253ee746138174f9",
"/assets/logo/logo.svg": "200ab18c82fdc093c77d8a0b6025ae65c1c6dcf9",
"/assets/logo/logo_kids.png": "8b8a0098b22e5b6a35486cc2712b6c52021e7053",
"/assets/manifest/ep-192x192.png": "ef3ddf5e16da1eb36a4422c228d74a3d3f42bd51",
"/assets/manifest/ep-192x192_alternative.png": "03d4da1ddd197187eb6c44b9a3dbb23222fd3824",
"/assets/manifest/ep-192x192_white.png": "1c3bc28f1f65a898afab961e469c2466e8223c92",
"/common.68d2f017a7dae628e8c5.js": "ab6f881f1c78238eadad9853ff10e55965285311",
"/es2015-polyfills.1c08ca914fb3a70a67ba.js": "05a1a4e4b56c2b2f44ef68df1a3ce7b6c967bcd4",
"/favicon.ico": "0bd4abdc42baf6ddbc290b0141ea9454ae9b5c9d",
"/fontawesome-webfont.674f50d287a8c48dc19b.eot": "d980c2ce873dc43af460d4d572d441304499f400",
"/fontawesome-webfont.912ec66d7572ff821749.svg": "98a8aa5cf7d62c2eff5f07ede8d844b874ef06ed",
"/fontawesome-webfont.af7ae505a9eed503f8b8.woff2": "d6f48cba7d076fb6f2fd6ba993a75b9dc1ecbf0c",
"/fontawesome-webfont.b06871f281fee6b241d6.ttf": "13b1eab65a983c7a73bc7997c479d66943f7c6cb",
"/fontawesome-webfont.fee66e712a8a08eef580.woff": "28b782240b3e76db824e12c02754a9731a167527",
"/index.html": "d269d3ad97704bb1d9ec0697b982d5d81354c9c5",
"/main.f08efb7a056c489b1b70.js": "8d4e5835f4090a1756f72d0a48a0a0e1f12f427b",
"/polyfills.e93ae6dbbd46cede4a3a.js": "4cdade4d3cfbdb7268ac6be842fd9fe6c1aa022f",
"/runtime.593a2fc9b4061ec94713.js": "238d319c42f8c621a7423d356b293ef616a2e55c",
"/scripts.ccad1d9b2f6939a49dad.js": "9352e22b1253460ed54cc39e6df658a4e4c6bc54",
"/styles.1b1d0abb44dcb4d40a0d.css": "d2972a867b27577a39a9c1625d50e98f43bef461"
},
"navigationUrls": [
{
"positive": true,
"regex": "^\\/.*$"
},
{
"positive": false,
"regex": "^\\/(?:.+\\/)?[^/]*\\.[^/]*$"
},
{
"positive": false,
"regex": "^\\/(?:.+\\/)?[^/]*__[^/]*$"
},
{
"positive": false,
"regex": "^\\/(?:.+\\/)?[^/]*__[^/]*\\/.*$"
}
]
}
最佳答案
您需要允许所有以 fontawesome-webfont 开头的 url,如下面的代码所示。
将此添加到您的 ngsw-config.json 文件
{
"name": "assets",
"installMode": "prefetch",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**",
"/fontawesome-webfont*",
"/*.(eot|svg|cur|jpg|png|webp|gif|otf|ttf|woff|woff2|ani)"
]
}
}
关于Angular 6 service worker 正在缓存字体超棒的图标,无法在离线模式下检索它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61868552/
我阅读了有关 JSR 107 缓存 (JCache) 的内容。 我很困惑:据我所知,每个 CPU 都管理其缓存内存(无需操作系统的任何帮助)。 那么,为什么我们需要 Java 缓存处理程序? (如果C
好吧,我是 jQuery 的新手。我一直在这里和那里搞乱一点点并习惯它。我终于明白了(它并不像某些人想象的那么难)。因此,鉴于此链接:http://jqueryui.com/sortable/#dis
我正在使用 Struts 2 和 Hibernate。我有一个简单的表,其中包含一个日期字段,用于存储有关何时发生特定操作的信息。这个日期值显示在我的 jsp 中。 我遇到的问题是hibernate更
我有点不确定这里发生了什么,但是我试图解释正在发生的事情,也许一旦我弄清楚我到底在问什么,就可能写一个更好的问题。 我刚刚安装了Varnish,对于我的请求时间来说似乎很棒。这是一个Magneto 2
解决 Project Euler 的问题后,我在论坛中发现了以下 Haskell 代码: fillRow115 minLength = cache where cache = ((map fill
我正试图找到一种方法来为我网络上的每台计算机缓存或存储某些 python 包。我看过以下解决方案: pypicache但它不再被积极开发,作者推荐 devpi,请参见此处:https://bitbuc
我想到的一个问题是可以从一开始就缓存网络套接字吗?在我的拓扑中,我在通过双 ISP 连接连接到互联网的 HAProxy 服务器后面有 2 个 Apache 服务器(带有 Google PageSpee
我很难说出不同缓存区域 (OS) 之间的区别。我想简要解释一下磁盘\缓冲区\交换\页面缓存。他们住在哪里?它们之间的主要区别是什么? 据我了解,页面缓存是主内存的一部分,用于存储从 I/O 设备获取的
1.题目 请你为最不经常使用(LFU)缓存算法设计并实现数据结构。 实现 LFUCache 类: LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象 in
1.题目 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: ① LRUCache(int capacity) 以正整数作为容量 capacity
我想在访问该 View 时关闭某些页面的缓存。它适用于简单查询模型对象的页面。 好像什么时候 'django.middleware.cache.FetchFromCacheMiddleware', 启
documents为 ExePackage element state Cache属性的目的是 Whether to cache the package. The default is "yes".
我知道 docker 用图层存储每个图像。如果我在一台开发服务器上有多个用户,并且每个人都在运行相同的 Dockerfile,但将镜像存储为 user1_myapp . user2 将其存储为 use
在 Codeigniter 中没有出现缓存问题几年后,我发现了一个问题。我在其他地方看到过该问题,但没有适合我的解决方案。 例如,如果我在 View 中更改一些纯 html 文本并上传新文件并按 F5
我在 Janusgraph 文档中阅读了有关 Janusgraph Cache 的内容。关于事务缓存,我几乎没有怀疑。我在我的应用程序中使用嵌入式 janusgrah 服务器。 如果我只对例如进行读取
我想知道是否有来自终端的任何命令可以用来匹配 Android Studio 中执行文件>使缓存无效/重新启动的使用。 谢谢! 最佳答案 According to a JetBrains employe
我想制作一个 python 装饰器来内存函数。例如,如果 @memoization_decorator def add(a, b, negative=False): print "Com
我经常在 jQuery 事件处理程序中使用 $(this) 并且从不缓存它。如果我愿意的话 var $this = $(this); 并且将使用变量而不是构造函数,我的代码会获得任何显着的额外性能吗?
是的,我要说实话,我不知道varnish vcl,我可以解决一些基本问题,但是我不太清楚,这就是为什么我遇到问题了。 我正在尝试通过http请求设置缓存禁止,但是该请求不能通过DNS而是通过 Varn
在 WP 站点上加载约 4000 个并发用户时遇到此问题。 这是我的配置: F5 负载均衡器 ---> Varnish 4,8 核,32 Gb RAM ---> 9 个后端,4 个核,每个 16 RA
我是一名优秀的程序员,十分优秀!