标签: browser-cache

浏览器不会读取更新的CSS

编辑:真诚的道歉!这不是我自己的问题 - 我有一个global.css文件,里面有正确的东西,但是下面我还包含了另一个带有旧CSS的文件,在<head>我的HTML中.捂脸.

我有一个我正在开发的网站.我正在使用LESS来增强我的CSS,使其更容易编写.问题是,当我更改.less文件时,浏览器中呈现的样式拒绝更改.我查看了生成的.css文件,并进行了更新以反映所做的更改,但是浏览器不会从CSS文件更新它的呈现样式.我在Chrome,FF(3和4)以及Opera中尝试过这种方法,并且具有相同的非更新结果.

我甚至告诉浏览器不使用PHP和meta标签缓存任何内容,但无济于事.我的Apache配置文件几乎是普通的,虽然我使用多个localhosts(这是一个本地服务器).用于将LESS转换为CSS的代码如下所示,并在每次重新加载页面时运行:

try 
{
    lessc::ccompile('global/global.less', 'global/global.css');
} 
catch(exception $ex) 
{
    exit('lessc fatal error:<br />' . $ex->getMessage());
}
Run Code Online (Sandbox Code Playgroud)

这里没有例外.该less.php程序检查,如果该文件已被修改,这是我的一点删除,但在每一个变化的CSS文件重新生成,因此这必须是一个缓存的问题与地方的浏览器...阿帕奇提供了更新的CSS文件正好 :-/

很抱歉继续这么久,但我想说清楚.如果您还有其他需要,请告诉我.

css updating less browser-cache

10
推荐指数
1
解决办法
9273
查看次数

是否可以要求您的用户清除其网站的HTTP严格传输安全性(HSTS)?

如果你为你的网站打开HSTS的生命周期很长但后来又决定将其关闭(例如由于第三方软件的问题),是否可以警告用户清除他们的"HSTS缓存"?

http browser-cache

10
推荐指数
1
解决办法
1165
查看次数

如何防止Firefox中的后向缓存显示内容?

浏览器: Firefox 6.0

我使用以下设置进行页面A以确保内容未存储在浏览器的bfcache中:

1) $(window).unload(function(){});

2)以下HTTP标头:

<meta http-equiv="pragma" content="no-cache" /> 
<meta http-equiv="expires" content="-1" />
<meta http-equiv="cache-control" content="no-cache"/>
Run Code Online (Sandbox Code Playgroud)

我也迷上了事件pagehidepageshow.当我离开页面时,pagehide使用CORRECT值调用事件属性persisted = false(这是需要的:缓存中没有持久性!)

浏览了几页后,我window.history.go(-2);回到了A页.此时,我希望Firefox在服务器上轮询更新版本,而不是从缓存中显示.使用pageshow事件属性的CORRECT值调用页面A persisted = false(意味着页面未从缓存加载).但页面内容不是服务器数据; 它是陈旧的内容(与最初离开页面时相同)!Fiddler也没有向服务器显示新请求.

谷歌浏览器也表现出相同的行为.IE按预期工作(重新加载新数据)!

知道我错过了什么吗?

提前致谢!

firefox cache-control browser-cache

10
推荐指数
2
解决办法
2万
查看次数

为什么Firefox不发送If-Modified-Since标头?

根据Firebug,这是第一次检索资源时的响应头:

Accept-Ranges   bytes
Cache-Control   public, max-age=86400
Content-Language    en
Content-Length  232
Content-Location    http://localhost/myapp/cacheTest.html
Content-Type    text/html; charset=WINDOWS-1252
Date    Wed, 05 Sep 2012 15:59:31 GMT
Last-Modified   Tue, 01 May 2012 05:00:00 GMT
Server  Restlet-Framework/2.0.3
Vary    Accept-Charset, Accept-Encoding, Accept-Language, Accept
Run Code Online (Sandbox Code Playgroud)

我点击了然后点击返回,这里是发送到服务器的请求标头:

Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Connection  keep-alive
Host    localhost
Referer http://localhost/myapp/cacheTest2.html
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20100101 Firefox/15.0
Run Code Online (Sandbox Code Playgroud)

所以,当然,服务器不能像我想的那样发送304,而是再次发送整个资源.

这在Firefox 14中发生,我认为它可能是一个错误,所以我升级了.但它仍然在Firefox 15中发生.Chrome没有问题.

无论有没有"Expires"标题我都尝试过,它没有任何区别.Firefox只是拒绝发送If-Modified-Since标头.

firefox http browser-cache http-headers

10
推荐指数
2
解决办法
4446
查看次数

NancyFX是否支持通过ETag和Last-Modified标头进行静态内容缓存?

我希望我的静态内容(图像,javascript文件,css文件等)只有在文件更新后才能完整提供.

如果自上次请求的文件并没有改变(如由确定ETagLast-Modified响应报头值),那么我想通过客户端浏览器中使用的文件的缓存版本.

南希是否支持此功能?

static-content browser-cache nancy

10
推荐指数
1
解决办法
2856
查看次数

如何让浏览器停止缓存GWT nocache.js

我正在使用GWT开发一个Web应用程序,app.nocache.js即使Web服务器发送了该文件的新副本,我也看到了在浏览器中缓存文件的疯狂问题!

我正在使用Eclipse来编译应用程序,它在开发模式下工作.为了测试生产模式,我有一台虚拟机(Oracle VirtualBox),在我的主机(Windows 7)上运行Ubuntu客户操作系统.我在VM中运行lighttpd Web服务器.VM正在共享我项目的war目录,并且Web服务器正在为此目录提供服务.

我使用Chrome作为浏览器,但在Firefox中也是如此.

这是场景:

  • 该应用的网页为空白.Accorind对Chrome的"Inspect Element"工具,因为它正在尝试获取6E89D5C912DD8F3F806083C8AA626B83.cache.html,它不存在(404 not found).
  • 我查看war目录,果然,该文件不存在.
  • app.nocache.js浏览器重新装入从Web服务器(200 OK),因为在服务器上的文件比浏览器缓存更新.我验证了服务器返回的新文件的文件大小和时间戳是正确的.(这是Chrome报告服务器的HTTP响应的信息)
  • 但是,如果我打开app.nocache.js浏览器,javascript就是指6E89D5C912DD8F3F806083C8AA626B83.cache.html!也就是说,即使Web服务器发送了新的app.nocache.js,浏览器似乎也忽略了它并继续使用其缓存副本!

  • 转到Google-> Eclipse中的GWT Compile.重新编译整个事情.

  • 在war目录中验证是否app.nocache.js被覆盖并具有新的时间戳.
  • 从Chrome重新加载页面并再次验证服务器是否向该服务器发送了200 OK响应app.nocache.js.
  • 浏览器再次尝试加载6E89D5C912DD8F3F806083C8AA626B83.cache.html并失败.浏览器仍在使用旧的缓存副本app.nocache.js.
  • 绝对肯定在战争目录中没有任何指称6E89D5C912DD8F3F806083C8AA626B83.cache.html(通过find和grep)

出了什么问题?为什么nocache.js即使服务器向其发送新副本,浏览器也会缓存此文件?


以下是在浏览器中单击重新加载时HTTP请求/响应标头的副本.在此跟踪中,自上次GET以来尚未重新编译服务器内容(但请注意,nocache.js的缓存版本仍然是错误的!):

Request URL:http://192.168.2.4/xbts_ui/xbts_ui.nocache.js
Request Method:GET
Status Code:304 Not Modified
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:192.168.2.4
If-Modified-Since:Thu, 25 Oct 2012 17:55:26 GMT
If-None-Match:"2881105249"
Referer:http://192.168.2.4/XBTS_ui.html
User-Agent:Mozilla/5.0 …
Run Code Online (Sandbox Code Playgroud)

gwt lighttpd browser-cache

10
推荐指数
2
解决办法
2万
查看次数

如何强制页面刷新浏览器后退点击?

单击导航器后退按钮时,是否存在跨浏览器兼容的强制页面刷新方式?

我正在尝试访问实际的cookie:

我有一个js setcookie函数,记录类型选择器中的更改

$( "#type-select" ).change(function() {             
    var type = $("#type-select").val();
    SetCookie("liste-voyage-type",type);
    });
Run Code Online (Sandbox Code Playgroud)

我想在返回此页面时检索该值,单击浏览器后退按钮,使用php

 if (isset($_COOKIE["liste-voyage-type"]))
        $type=$_COOKIE["liste-voyage-type"];
Run Code Online (Sandbox Code Playgroud)

javascript cookies jquery browser-cache

10
推荐指数
1
解决办法
2万
查看次数

单击链接时刷新页面

单击href时,我有以下内容来刷新我的页面.

    <a href="javascript:history.go(0)">Click to refresh the page</a>
Run Code Online (Sandbox Code Playgroud)

我有这个

    <meta http-equiv="no-cache"> 
Run Code Online (Sandbox Code Playgroud)

在头标签.即便如此,我还是获得了一个缓存副本.如何避免加载缓存副本?

html browser-cache

10
推荐指数
1
解决办法
6万
查看次数

将字符串附加到Service Worker中的用户代理

我一直坚持这个问题一段时间了.我已经深入研究并花了很多时间在SO上查看类似的问题 - 但不成功.

一点背景.我有一个网站和一个Android应用程序有效地呈现不同形式的网站,具有不同的显示等...应用程序知道从传入的请求做到这一点 - 因为用户有一个特定的字符串附加到用户代理(让我们只是说, string是'MobileAppRequest').在用户代理中检测到该字符串后,服务器知道返回不同的html文件.这允许用户仍然可以访问他们的浏览器上的网站并使用网络版本以及从他们的Android应用程序获得应用程序体验.

现在,在使用服务工作者时,它默认为用户的标准用户代理,而不包括应用程序中的附加字符串.然后,这将返回应用程序中的Web版本,这会将其全部搞砸.我需要知道如何设置自定义标头,或者确实将字符串附加到服务工作者中的用户代理.它说当我尝试直接更改它时标题是不可变的但我知道解决这个问题的方法是将新请求作为响应.

这是我的SW.js

var CACHE_STATIC_NAME = 'static-v10';
var CACHE_DYNAMIC_NAME = 'dynamic-v2';

self.addEventListener('install', function (event) {
  console.log('[Service Worker] Installing Service Worker ...', event);
  event.waitUntil(
    caches.open(CACHE_STATIC_NAME)
      .then(function (cache) {
        console.log('[Service Worker] Precaching App Shell');
        cache.addAll([
          '/',
          '/static/media/next.png',
          '/static/media/previous.png'
        ]);
      })
  )
});

self.addEventListener('activate', function (event) {
  console.log('[Service Worker] Activating Service Worker ....', event);
  event.waitUntil(
    caches.keys()
      .then(function (keyList) {
        return Promise.all(keyList.map(function (key) {
          if (key !== CACHE_STATIC_NAME && key !== CACHE_DYNAMIC_NAME) {
            console.log('[Service Worker] Removing old cache.', …
Run Code Online (Sandbox Code Playgroud)

javascript browser-cache service-worker

10
推荐指数
1
解决办法
929
查看次数

注销Angular.js时删除模板缓存

一旦用户点击注销,如何删除Angular模板缓存?我们进行了彻底的研究,并尝试实施大部分可用的解决方案.我们试过以下

HTML元标记

<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
Run Code Online (Sandbox Code Playgroud)

服务器端

res.setHeader('cache-control', 'no-cache', 'no-store', 'must-revalidate');
Run Code Online (Sandbox Code Playgroud)

使用Javascript

我们尝试删除此博客上指定的浏览器历史记录

我们现在面临的问题是,当用户从我们的应用程序退出并按下后退按钮时,他显示空的html模板,因为服务未缓存,我们如何确保模板不缓存?

caching back browser-cache angularjs

9
推荐指数
1
解决办法
2万
查看次数