如何防止脚本从缓存中加载 [Angular]
How to prevent script loading from the cache [Angular]
我创建了一个 Angular 应用程序。我的应用程序从服务器加载脚本,但在第一个 运行 之后,它像往常一样从缓存中获取脚本。我使用的是现代浏览器,但我的技术主管希望我也能使其与旧版浏览器兼容。所以,我现在使用的是 Internet Explorer 11。我添加了一些 polyfill 并获得了应用 运行ning:
/*******************************************
* BROWSER POLYFILLS
*/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
但是我们的要求是每次页面加载时应用程序都应该从服务器获取脚本。这是我的网络截图:
显然我不能(或不应该)告诉我们的客户手动禁用他们的浏览器缓存。有什么办法可以通过我的代码仅针对 IE 11 或所有浏览器阻止这种情况?它甚至可行吗?请帮忙。
您可以使用命令ng build --outputHashing=bundles
。它创建编译文件的唯一名称 - 带有哈希。它解决了缓存问题。
文档是 here
而且用户使用哪个浏览器并不重要
我创建了一个 Angular 应用程序。我的应用程序从服务器加载脚本,但在第一个 运行 之后,它像往常一样从缓存中获取脚本。我使用的是现代浏览器,但我的技术主管希望我也能使其与旧版浏览器兼容。所以,我现在使用的是 Internet Explorer 11。我添加了一些 polyfill 并获得了应用 运行ning:
/*******************************************
* BROWSER POLYFILLS
*/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
但是我们的要求是每次页面加载时应用程序都应该从服务器获取脚本。这是我的网络截图:
您可以使用命令ng build --outputHashing=bundles
。它创建编译文件的唯一名称 - 带有哈希。它解决了缓存问题。
文档是 here
而且用户使用哪个浏览器并不重要