在 HTML4 中,我们使用了类似的东西
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
<meta http-equiv="Expires" content="Thu, 01 Jan 1970 00:00:00 GMT" />
Run Code Online (Sandbox Code Playgroud)
让浏览器不缓存页面。
我应该在 HTML5 中使用什么来让浏览器不缓存我的页面。我根本不想缓存任何页面。
我见过一些关于
<html manifest="example.appcache">
...
</html>
Run Code Online (Sandbox Code Playgroud)
但是为了让浏览器不缓存任何内容,在整个 Web 应用程序中指定所有页面似乎需要做很多工作。
有没有更简单的方法?
如果我从 html 标记中省略清单部分,是否会使浏览器不缓存任何内容?IE
<html>
...
</html>
Run Code Online (Sandbox Code Playgroud)
或者将其视为可以缓存所有内容?
我一直在查看,并在我目前正在进行的开发项目中实现了客户端缓存。
当我使用 Asp.Net 时,我已经使用以下代码直接更新了 web.config 文件:
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="365.00:00:00" />
</staticContent>
Run Code Online (Sandbox Code Playgroud)
我还实现了一个“指纹”解决方案,它允许我自动使缓存中的 CSS 和脚本文件过期。
但是,我开始考虑如果图像更改会怎样 - 假设它被修改并重新上传而没有被重命名。在这种情况下,我不一定希望浏览器继续缓存图像的旧版本长达一年。
因此,问题是可以使用 web.config 静态内容部分为不同的文件类型设置不同的缓存持续时间吗?
我想知道浏览器如何处理包含Vary: Origin和Access-Control-Max-Age标头的CORS 预检响应。
本声明来自https://www.w3.org/TR/cors/
希望使自己能够与多个源共享但不以“*”统一响应的资源必须在实践中动态生成 Access-Control-Allow-Origin 标头以响应它们希望允许的每个请求。因此,此类资源的作者应发送 Vary: Origin HTTP 标头或提供其他适当的控制指令以防止缓存此类响应,如果跨源重用可能会不准确
从这个声明我明白Vary: Origin会告诉浏览器阻止预检响应的缓存(如果 allow-origin: * not used)
Access-Control-Max-Age将告诉浏览器将缓存预检响应一段时间。
问题:
如果预检响应中存在两个标头,它是否有效?
如果响应包含这两个标头,浏览器如何处理预检响应?
谢谢!
我有一个ASP.Net MVC + angular web 应用程序。大约有 500 多个用户正在使用该应用程序。
问题是每当我们进行新的发布/发布时,我们都必须让用户清除他们的浏览器缓存。这对用户来说很烦人。
其他网站(例如 facebook 等)在更新其应用程序/站点时如何管理浏览器缓存,因为我们不会经常清除浏览器缓存。
当有新版本时,有没有办法自动清除浏览器缓存。
我正在使用 ReactJS 处理我的项目,并create-react-app用于创建我的应用程序。构建项目后,我使用我的服务器为build文件夹提供服务。当我更新我的应用程序时,用户的浏览器仍然使用我应用程序的旧版本,因为它缓存了静态文件(js、css)。那么有什么办法可以防止浏览器缓存静态文件呢?谢谢 !
我们的应用程序是使用 angular-cli(版本:7.0.2)和 angular(版本:7.0.0)开发的。我们的图像文件很少,pdf 保存在资产文件夹中。每 3 个月发布一次应用程序的每个版本,这些文件都会发生变化。
我通读了此链接中提到的各种技术:使用同一网址中的新图片刷新图片
不确定哪个是最好的解决方案。任何关于如何实现缓存破坏的建议/代码片段表示赞赏。
问题
我的缓存 Vue.js 组件有问题,我无法在我的设备上重现这个问题,但每次客户端更新我们都会让用户抱怨接口损坏,只有清除浏览器缓存才有帮助。
我使用 Laravel + Vue.js 和它的多页应用程序。
战略
app.js 中包含的一个文件中描述的所有组件,它看起来像这样:
Vue.component('task-feed', () => import('./components/task/task-feed'/* webpackChunkName: "/js/components/task-feed" */));
Vue.component('task-item', () => import('./components/task/task-item'/* webpackChunkName: "/js/components/task-item" */));
Run Code Online (Sandbox Code Playgroud)
有 vue.js 异步组件。
然后我像这样配置了 webpack.mix:
let mix = require('laravel-mix');
const webpack = require('webpack');
const ChunkManifestPlugin = require('chunk-manifest-webpack-plugin');
const WebpackChunkHash = require('webpack-chunk-hash');
mix.disableNotifications();
let config = {
watchOptions: {
ignored: /node_modules/
},
resolve: {
alias: {
'vue$': mix.inProduction() ? 'vue/dist/vue.runtime.min.js' : 'vue/dist/vue.runtime.js',
}
},
output: {
chunkFilename: mix.inProduction() ? '[name].[chunkhash].js' : '[name].js',
},
plugins: [ …Run Code Online (Sandbox Code Playgroud) 我有一个在 python 服务器上运行的 angular 7 应用程序,我们正在使用 angular-cli 构建项目文件。在构建时,我正在使用以下命令设置缓存突发选项。
ng build --prod --build-optimizer --aot --output-hashing=all
output-hashing=all 将根据角度文档处理缓存突发。虽然我提供了这个标志,但在部署我们的应用程序文件名后附加了哈希值(styles.a5169d3732258e921e2c.css、main.8dc0644c88c4fbf67797.js)但 index.html 文件总是显示缓存版本。
我想在客户端缓存除 index.html 之外的所有文件。我将如何做到这一点?
我有一个简单的 PWA,我从 Github 页面更新和更改。
当我更新网站时,它不会显示在使用该网站的设备上,因为(至少我认为)它被缓存了。我没有任何服务人员来缓存该站点。
即使是网站的正常刷新(使用所有这些)
不刷新它并显示更改。在 iOS 上,我必须手动进入设置并清除网站数据以查看更改。
我怎样才能解决这个问题?
创建使用 POST/PUT 的 REST API 很简单。它们是非幂等的,因此默认情况下不会被浏览器缓存。
但是,在创建 GET 端点时,事情变得更棘手了。我担心浏览器(或特定浏览器)在默认情况下会尝试缓存 GET 请求,而我最终会得到陈旧的数据。
让我们以端点为例GET /articles/123/comments。
尽管这个端点是一个 GET 端点,但每个请求都可以返回不同的内容,因为文章的评论被提交。
假设没有与响应提供的缓存相关的标头。
content-length: 2518
content-type: application/json
date: Thu, 17 Oct 2019 07:51:59 GMT
status: 200
Run Code Online (Sandbox Code Playgroud)
似乎有不同的策略来解决这个问题,但最好的方法是什么?
通过唯一的查询字符串缓存破坏我的 GET 调用?
例如。 GET /articles/123/comments?nonce=12312310980923409
添加Cache-Control: no-cache(这会一直受到尊重吗?)
添加ETag: xyz_HASH_OF_MY_LIST_OF_COMMENTS?
添加Cache-Control: max-age=0(禁用缓存)
添加Cache-Control: max-age=60(以减少缓存的最大持续时间)
只是不要担心并假设没有像ETag, Last-ModifiedGET 请求这样的标头不会被任何浏览器缓存?
browser-cache ×10
caching ×4
javascript ×3
angular-cli ×2
angular7 ×2
asp.net ×2
html ×2
webpack ×2
angular ×1
angularjs ×1
cors ×1
cross-domain ×1
http ×1
http-caching ×1
iis ×1
laravel-mix ×1
preflight ×1
reactjs ×1
static-files ×1
vue.js ×1
web-config ×1