我们在Amazon S3上托管我们的图像,并通过Amazon Cloudfront为他们提供服务.我们想减少带宽费用.我们认为我们有很多带宽被盗,并希望开始使用签名网址来防止这种情况发生.但是,我们必须平衡这一事实,即每次我们发送一个新签名的URL时,它会使图像的浏览器缓存无效.
我们当前的计划是生成一个有效期为两个月的签名网址,然后在生成新签名网址之前将其缓存在本地并提供一个月.这将允许浏览器将图像缓存更长时间.然而,这也意味着任何人都可以为图像提供长达两个月的带宽.
有没有办法让链接更快到期,但让浏览器继续缓存该图像?我知道当url被重新签名用于新的时间戳时,图像的etag和If-Modified-Since不会改变,但是浏览器不再知道在头部中发送这些值,因为就其而言,这是一个新的URL.有没有解决这个问题的方法?
我对Node.js/Express很新,但我想我正慢慢掌握它.我添加了这段代码,从我所知道的代码看起来非常标准:
app.configure('production', function() {
var oneYear = 31557600000;
app.use(express.static(__dirname + '/public', { maxAge: oneYear }));
app.use(express.errorHandler());
});
Run Code Online (Sandbox Code Playgroud)
浏览Chrome的缓存会发现,是的,一切都在缓存.欢呼!但是当我在我的网站上运行Chrome的审核时(我注意到,在其他基于节点的网站上),Chrome表示该网站没有缓存任何内容.什么可能导致这种差异?
当使用Eclipse Java EE IDE for Web Developers版Eclipse Juno SR2,并在内部Web浏览器中运行Web应用程序时,如何删除该浏览器的cookie和缓存?
我搜索过Eclipse的帮助,谷歌和StackOverflow.com,但令人惊讶的是没有找到这个简单问题的直接正确答案.
将新实体发布到数据存储区后,我将页面重定向到一个新URL,该URL列出该组中的所有实体.当我重定向时,页面显示过时的结果,我必须重新加载以查看数据存储区中的新实体列表.
我知道最终的一致性.这就是为什么我看到陈旧的结果?
例如,
我的数据存储区我有一个用户 - 用户1然后,在一个表单中,我添加一个用户 - 用户2这个实体被放到数据存储区然后我重定向到一个新的网址,即'get/users'
在重定向上我只看到用户1,但如果我刷新页面,我会看到用户2.我能保证或帮助防止陈旧结果吗?
google-app-engine browser-cache app-engine-ndb google-cloud-datastore
我有一个奇怪的错误,并想知道是否有其他人可以想到一个原因.
情景: -
这种情况发生在Firefox和Chrome中,我还没有尝试过Internet Exploder.
我只在我的机器上再次发布了这个问题,而在与测试人员的Skype通话中,他们每次都可以重现它.它们基于印度,并且与我们的测试站点的连接速度要慢得多.这可能是一个原因吗?
我看到了一个相关的问题,但这是由Squid代理引起的,我不是代理的背后(虽然测试人员可能是).
我不喜欢添加缓存控制头,因为浏览器不应该根据HTTP规范缓存403,但我需要保证,当用户登录时,他们会获得正确的内容.
任何关于可能是什么原因的想法将不胜感激.在此期间,我将向转向页面添加一些缓存控制标头,以查看是否有帮助.
firefox google-chrome http browser-cache http-status-code-403
我刚刚发现Chrome不会缓存放置在SVG中的图像,如果它们的cache-control标题设置为no-cache.Firefox和IE10似乎忽略了这个设置.
我用静态SVG创建了一个小测试页面:
HTML:
<div style="width: 500px; text-align: center;">
<input id="move-left-btn" type="button" value="<<">
<input id="move-right-btn" type="button" value=">>">
</div>
<div class="svgwrapper" style="width: 500px; height: 250px; background-color: lightgrey;">
<svg id="svg" version="1.1" xmlns="http://www.w3.org/2000/svg" width="500" height="250">
<g id="svggroup" class="transition-on" transform="matrix(0.2,0,0,0.2,80,35)">
<image width="1672" height="887" opacity="1" xlink:href="https://dl.dropboxusercontent.com/sh/q7htlj5h8qqfhjf/SVDuynM7R3/car.png"></image>
</g>
</svg>
</div>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
$(document).ready(function() {
var curXPos = 80;
// Local test function which represent some server calls in my "real life" scenario
// Just updates the x-position in the transform matrix in this test …Run Code Online (Sandbox Code Playgroud) 我正在尝试测试一些缓存配置,我希望我的页面在请求再次到达服务器之前保留在缓存中1分钟.
使用这个简单的test.asp页面,它有一个自己的链接:
<% Option Explicit %>
<%
Response.Expires = 1
Response.CacheControl = "private, max-age=60"
%>
<html>
<head><title>test</title></head>
<body>
<% =Now() %>
<br />
<a href="test.asp">test</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这在我的开发计算机http://localhost/test.asp上完美运行,(点击链接不会在1分钟内刷新打印的日期时间).
但是,当我将页面放在生产服务器上时,它没有达到预期的效果.点击链接仅几秒钟后,我得到一个新的日期时间,意味着请求到达了Web服务器.
我使用Chrome开发工具查看这些响应标头:
HTTP/1.1 200 OK
Cache-Control: private, max-age=60
Content-Type: text/html
Expires: Tue, 12 May 2015 19:16:52 GMT
Last-Modified: Tue, 12 May 2015 19:10:00 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 12 May 2015 19:15:55 GMT
Content-Length: 205
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助解释为什么它不能在prod服务器上工作?
更新 我尝试使用Chrome,Firefox和IE,还有2个页面test.asp和test2.asp,两个都有一个指向另一个页面的链接,并且在8-12秒之后得到完全相同的问题,页面刷新而不是等待刷新前60秒.
我希望你能解决我的问题.目前,我与服务工作者建立了PWA.它注册成功,但安装有问题.
"caches.open"-promise会导致错误:"TypeError:Request failed at".您可以在Chrome中看到缓存已注册,但为空.我已经检查了缓存网址数千次..
这是我的服务工作者代码
var CACHE_NAME = 'surv-cache-1';
var resourcesToCache = [
'/',
'/index.html',
'/jquery-3.2.1.min.js',
'/pouchdb.min-6.4.1.js',
'/styles/inline.css',
'/scripts/app.js'
];
self.addEventListener('install', function(event) {
event.waitUntil(
// open the app browser cache
caches.open(CACHE_NAME).then(function(cache) {
console.log("Install succesfull");
// add all app assets to the cache
return cache.addAll(resourcesToCache);
}).then(function(out){
console.log(out);
}).catch(function(err){
console.log(err);
})
);
});
self.addEventListener('fetch', function(event) {
event.respondWith(
// try to find corresponding response in the cache
caches.match(event.request)
.then(function(response) {
if (response) {
// cache hit: return cached result
return response;
}
// …Run Code Online (Sandbox Code Playgroud) html basic-authentication browser-cache http-status-code-401 service-worker
有没有办法可以在客户端浏览器下次访问网站时替换或删除客户端浏览器中缓存的 css 和 js 文件?
我正在使用 jboss Server 7.1.1 来部署 java web 应用程序。对于 js、css、字体文件,浏览器缓存不会随着新的更改而更新。每次我们都坚持要求客户清除浏览器中的缓存以使新的更改生效。
是否有任何我可以配置的配置,以便在部署新代码时我可以引导所有请求提供更新的文件?
通过谷歌搜索这个主题,我发现我们可以编写自定义方法来设置电子标签值。有什么配置可以帮助我做到这一点吗?
大多数时候我们都会进行热部署(在 jboss 管理控制台中上传 war 文件,无需停机)。所以我怀疑在热部署期间自定义电子标签是否会更新,因为我们在服务器启动时配置了它。
或者有没有办法在 Web 应用程序的 web.xml 文件中处理它?
我需要一个可以使用浏览器缓存的解决方案,直到下次部署 js、css 和字体文件。我不知道如何设置“过期”标题。因为我们没有固定的部署周期。
如果您需要更多信息才能找到解决方案,请告诉我。
browser-cache ×10
javascript ×2
amazon-s3 ×1
asp-classic ×1
browser ×1
caching ×1
css ×1
eclipse ×1
etag ×1
express ×1
firefox ×1
html ×1
http ×1
http-caching ×1
java ×1
jboss ×1
node.js ×1
svg ×1