Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在内置SPA中禁用缓存_Javascript_Reactjs_Caching - Fatal编程技术网

Javascript 在内置SPA中禁用缓存

Javascript 在内置SPA中禁用缓存,javascript,reactjs,caching,Javascript,Reactjs,Caching,工作原理:我构建应用程序,并使用FTP将其联机。问题是,浏览器会缓存旧版本的React应用程序 要使用新版本,我必须手动清除缓存。显然,用户将不知道如何做到这一点 如何禁用代码的缓存 我正在使用主机。我完全不知道应该包括哪些内容,如果您需要一些信息,请告诉我,我会提供。您的服务器可以告诉浏览器不要缓存项目。在NGINX(或服务器正在运行的任何东西)中,您将需要沿 add_header Cache-Control 'no-store, no-cache, must-revalidate, prox

工作原理:我构建应用程序,并使用FTP将其联机。问题是,浏览器会缓存旧版本的React应用程序

要使用新版本,我必须手动清除缓存。显然,用户将不知道如何做到这一点

如何禁用代码的缓存


我正在使用主机。我完全不知道应该包括哪些内容,如果您需要一些信息,请告诉我,我会提供。

您的服务器可以告诉浏览器不要缓存项目。在NGINX(或服务器正在运行的任何东西)中,您将需要沿

add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
这样浏览器就知道总是获取新版本。

要强制浏览器“清除”其缓存,您可以在每次创建生成时生成唯一的文件名


如果您使用
webpack
for来创建生产版本,您可以阅读更多如何处理它。

向应用程序资产添加查询字符串可能会有所帮助(例如,这个问题:)我只是在使用
warn build
将其更改为webpack有意义吗?@AlexIronside
warn build
只是执行一些任务(在
package.json
中定义)。任务具体做什么-取决于您的配置。您是否使用一些样板项目创建了
SPA
,如
create react app
?是的。我正在使用
create react app
@AlexIronside,因此您应该已经正确配置了
webpack
,以便为您的资产生成不同的文件名每次运行
warn build
。我刚刚尝试构建了两次,两次的名称都是
main.38f79161.js
我应该在哪里包含这个?类似于.htaccess的东西?