javascript - Angular 7 Service Worker 缓存音频文件会导致 Safari 出现范围标头问题
问题描述
new audio(audio src here)
在我的角度应用程序中,对于safari 上的任何请求,范围请求标头都存在问题。当从服务器请求音频时,音频文件的持续时间会正常返回。但是,当从 service worker 请求音频时,它将音频持续时间返回为 Infinite。
我有一个谷歌,Safari显然有这个问题,它将缓存媒体文件的范围标头设置为'bytes = 0-1',这就是问题所在,如下所示:
有没有一种角度来拦截new audio(audio src here)
请求并修改标头或以某种方式从服务工作者缓存策略中排除任何媒体请求?
我当前的服务工作者配置如下:
{
"index": "/index.html",
"assetGroups": [
{
"name": "app",
"installMode": "prefetch",
"resources": {
"files": [
"/assets/img/logo.png",
"/assets/img/no-internet-icon.jpg",
"/favicon.ico",
"/index.html",
"/*.css",
"/*.js"
]
}
},
{
"name": "assets",
"installMode": "lazy",
"updateMode": "prefetch",
"resources": {
"files": [
"/assets/**"
]
}
}
]
}
解决方案
也许您应该添加Content-Range
音频响应的响应标头。
推荐阅读
- database - LMDB如何用只读mmap写入数据库?
- java - 我该如何解决这个 NullExceptionPointer 错误?
- javascript - 如何在 React 应用程序中添加 GASP 动画作为背景?
- c# - 如何让 Newtonsoft 按原样反序列化日期并将其称为 utc?
- c# - 使用 dotnetzip 库获取没有完整目录路径的 zip 文件
- python - 当我使用具有动态 fn 名称的 Ctypes 时,为什么我会得到负 ptr?
- r - 错误:无法提取不存在的列。使用 tidyr 包中的单独功能时
- bash - 我将自己的路径设置为 $PATH 变量,以便全局访问我的一些脚本,但我无法在任何目录中访问它们
- kubernetes - Kubernetes - 从文件更新现有配置映射
- c# - EF Core 中多对多关系的级联引用完整性约束