Angular Service Worker配置文件路径匹配规则及双星号含义是什么?
**通配符的含义
你在Angular Service Worker配置中看到的/assets/**使用的是标准glob路径匹配规则,其中**是递归通配符,代表匹配/assets/根目录及其所有嵌套子目录下的任意路径,不受子目录嵌套层数限制。
你给出的示例配置完整格式如下:
{ "name": "assets", "installMode": "lazy", "updateMode": "prefetch", "resources": { "files": [ "/assets/**" ] } }
这个配置的作用就是把整个assets目录下的所有静态资源都纳入Service Worker的缓存管理范围。
常用glob匹配语法说明
你在配置files数组时可以使用以下通用匹配规则:
*:匹配单个目录层级下的任意字符,不包含路径分隔符/。例如/assets/*.png只会匹配assets根目录下的png文件,不会命中子目录内的资源**:匹配任意数量的嵌套目录,可跨多层级匹配资源。例如/assets/**/*.svg会匹配assets目录下所有层级中的svg文件?:匹配单个非路径分隔符的字符。例如/assets/photo-?.jpg会命中/assets/photo-1.jpg、/assets/photo-a.jpg这类文件- 以
!开头的规则:代表从已匹配的资源中排除对应文件。例如!/assets/**/*.log会将所有log格式的文件从缓存列表中剔除
匹配规则文档查阅说明
Angular Service Worker的files字段完全遵循标准glob匹配规范,完整的支持语法、边界情况说明和使用示例可以直接查阅Angular官方文档中的Service Worker配置章节。
内容的提问来源于stack exchange,提问作者Josep Alacid
相关产品推荐
相关产品推荐

