为 html5 angular 视图实施一个策略,一旦我更改视图并部署它,浏览器就不应使用缓存版本
Implement a strategy for html5 angular views that once I change the view and deploy it, the browser should not use the cached version
为 html5 angularjs 视图实施策略,一旦我更改视图并部署它,浏览器就不应使用缓存版本。
我尝试使用 URL?v=1.0.1 的想法,但它会强制应用程序每次从服务器加载 html 页面,我更喜欢的方式是浏览器在加载时缓存页面并一直使用缓存的版本,直到部署了更新的版本,因此 HTML 页面的某种缓存断路器策略。我已经尝试了很多 html 缓存断路器,其中大多数都做同样的事情,每次都强制加载 HTML 页面,这并不理想,我的中间层是 ASP .NET WEB API 前端是 AngularJS。不确定是否可以通过服务器端设置来实现我想要的结果。
实现它的方法很少。我使用全局变量。例如,
Sample code 1
window.App = {
version: '1.1.0.1 beta',
rootPath: '/'
}
注意:我使用 ASP.Net MVC 的 cshtml 作为强类型 Angular 视图;您可以用常规文本替换服务器端代码。
Sample Code 2
angular
.module("users")
.component("userList", {
templateUrl: window.App.rootPath + "Users/Components/UserList.cshtml?v="
+ window.App.version,
controller: UserListController
});
我使用 HTML5 清单文件完成此操作 :),并且我使用我的构建过程更新清单文件,以便浏览器被迫获取更改后的 html 文件的新副本.
为 html5 angularjs 视图实施策略,一旦我更改视图并部署它,浏览器就不应使用缓存版本。
我尝试使用 URL?v=1.0.1 的想法,但它会强制应用程序每次从服务器加载 html 页面,我更喜欢的方式是浏览器在加载时缓存页面并一直使用缓存的版本,直到部署了更新的版本,因此 HTML 页面的某种缓存断路器策略。我已经尝试了很多 html 缓存断路器,其中大多数都做同样的事情,每次都强制加载 HTML 页面,这并不理想,我的中间层是 ASP .NET WEB API 前端是 AngularJS。不确定是否可以通过服务器端设置来实现我想要的结果。
实现它的方法很少。我使用全局变量。例如,
Sample code 1
window.App = {
version: '1.1.0.1 beta',
rootPath: '/'
}
注意:我使用 ASP.Net MVC 的 cshtml 作为强类型 Angular 视图;您可以用常规文本替换服务器端代码。
Sample Code 2
angular
.module("users")
.component("userList", {
templateUrl: window.App.rootPath + "Users/Components/UserList.cshtml?v="
+ window.App.version,
controller: UserListController
});
我使用 HTML5 清单文件完成此操作 :),并且我使用我的构建过程更新清单文件,以便浏览器被迫获取更改后的 html 文件的新副本.