【发布时间】:2018-05-19 10:45:21
【问题描述】:
我目前正在使用“react-scripts build”构建和部署我的 create-react-app 站点,然后将构建目录的内容复制到 apache web 目录。 web 目录包含一个 index.html 文件,该文件通过如下脚本标记指向已编译的 React js 文件:
<script type="text/javascript" src="/static/js/main.dd92ea42.js"></script>
这就是“react-script build”的所有内置行为。我发现即使创建了一个新的 index.html 文件,并且它的内容发生了变化(该 .js 文件的路径随每次部署而变化),浏览器仍会缓存整个应用程序。即使对网站进行“硬”刷新也不会加载新内容。我必须完全删除缓存,然后重新加载才能刷新。
使用 create-react-app 进行缓存和通过 react-scripts 构建是否有一些技巧?我假设浏览器仅在没有缓存应用程序的情况下查看 index.html 文件,并且不再查看它?否则我不明白为什么我重新部署时它没有看到对 index.html 文件的更改。
那么,部署一个 create-react-app 应用程序的技巧是什么,这样每次部署都会使浏览器的缓存失效,而用户无需费劲就可以获得新版本?
【问题讨论】:
-
你在使用 serviceWorker 吗?
-
是的,据我所知。我的 index.js 基本上只包含这个: ReactDOM.render(
, document.getElementById('root'));注册服务工作者();而且我还没有接触到实际的 registerServiceWorker。 -
@Dan 你解决了吗?这个问题没有答案。
-
不,我还没有解决它,并且没有优先考虑它,因此缺乏答案。谷歌搜索,似乎还有其他几种我还没有机会尝试的建议方法。
-
我最终禁用了服务工作者,因为我真的不需要我的网站可以离线访问。到目前为止,我还没有意识到 service worker 的功能。无论如何,我按照这里的说明进行操作:github.com/facebook/create-react-app/blob/master/packages/…
标签: reactjs caching deployment create-react-app react-scripts