我有一个Angular 8应用程序,并且运行了以下命令以尝试设置PWA功能:
$ ng add @angular/pwa --project my-app
从那里,文件似乎被设置为你所期望的PWA,像描述在这里。
开发中没有错误。
但是,我现在已经通过AWS Amplify托管了该应用程序的生产,并且我相信这种尝试添加PWA功能的做法会造成问题。
浏览器加载生产应用程序后,它会“卡在”该应用程序的该版本上。因此,举例来说,即使从那以后我多次放大应用程序,我的Chrome浏览器仍会从几天前开始加载该应用程序的第一个版本。这也发生在其他浏览器(例如移动浏览器)上。
加载该旧版本时,它在检查器中显示此错误:
Manifest: Line: 1, column: 1, Syntax error.
因此,AWS在某种程度上与PWA功能无关。是否有已知的解决方法?
该应用程序现已投入生产,非常感谢您的帮助。
更多细节:
有关更多背景信息,我的index.html包含以下内容:
<link rel="manifest" href="manifest.webmanifest">
在app / src文件夹中,是manifest.webmanifest:
{
"name": "My App",
"short_name": "My App",
"theme_color": "#1976d2",
"background_color": "#fafafa",
"display": "standalone",
"scope": "./",
"start_url": "./",
"icons": [
{
"src": "assets/icons/icon-72x72.png",
"sizes": "72x72",
"type": "image/png"
},
{
"src": "assets/icons/icon-96x96.png",
"sizes": "96x96",
"type": "image/png"
},
{
"src": "assets/icons/icon-128x128.png",
"sizes": "128x128",
"type": "image/png"
},
{
"src": "assets/icons/icon-144x144.png",
"sizes": "144x144",
"type": "image/png"
},
{
"src": "assets/icons/icon-152x152.png",
"sizes": "152x152",
"type": "image/png"
},
{
"src": "assets/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "assets/icons/icon-384x384.png",
"sizes": "384x384",
"type": "image/png"
},
{
"src": "assets/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
我还将注意到,从一开始就使Angular应用程序在Amplify上运行会产生一些问题。首先需要添加以下内容才能使应用正常运行:
重写和重定向:
源地址
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|map|json|mp3|tff)$)([^.]+$)/>
目标地址
/index.html
类型
200 (Rewrite)
就像我在问题中指出的那样,为了使Amplify与Angular一起使用,我必须添加如下重定向:
源地址
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|map|json|mp3|tff)$)([^.]+$)/>
目标地址
/index.html
类型
200 (Rewrite)
结果似乎发生了什么事,就是Amplify将重定向清单文件(不在“源地址”下的文件类型组中),因此清单文件什么都不会显示。
我将webmanifest文件类型添加到组中,现在看来可以正常使用了:
源地址
</^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|map|json|mp3|tff|webmanifest)$)([^.]+$)/>
目标地址
/index.html
类型
200 (Rewrite)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句