如果在 CRA 中配置了 Service Worker,则在 PWA 中提供静态 html 文件

问题描述

我想提供静态 html 文件,例如配置了服务工作线程的 PWA(使用 Create-React-App 构建)中的privacy.html、terms.html。在本地主机上,我可以访问像

这样的文件
http://locahost://terms.html
http://localhost://privacy.html

但是当提供构建 (server -s build) 或部署到主机时,我得到一个空白页面。我尝试实施多种解决方案来访问静态文件,但无法解决此问题。

解决方法

当您在 CRA 中构建应用程序时,它会为您创建一个 build 目录并将其构建的文件放入其中,以便将 privacy.html 放在构建目录中,您可以手动将 privacy.html 的副本放在构建目录中,或使用如下命令:

    cp current/path/to/privacy.html build/privacy.html

更好的方法是构建其脚本并将其添加到您的 package.json 文件中,并在当前构建脚本的末尾调用它,这样,每次构建应用程序时,它都会自动执行此操作给你:

package.json

"build-static-html-page": "cp current/path/to/privacy.html build/privacy.html","build": "CURRENT_BUILD_SCRIPT","build-project": "build build-static-html-page"