Django缓存_控件在IE8中不工作

Django缓存_控件在IE8中不工作,django,internet-explorer,browser-cache,cache-control,Django,Internet Explorer,Browser Cache,Cache Control,Django 1.7、python 3.4、IE8 我正在从事一个Django项目,在该项目中,用户是通过Windows active directory而不是Django db进行身份验证的 用户必须经过身份验证才能查看其他页面。我在我的所有页面上使用@cache\u控件(no\u cache=True,must\u revalidate=True,no\u store=True)来防止缓存。当用户点击“注销”时,返回按钮将在Firefox和Chrome上过期,但在IE8上有效 客户端将仅从I

Django 1.7、python 3.4、IE8

我正在从事一个Django项目,在该项目中,用户是通过Windows active directory而不是Django db进行身份验证的

用户必须经过身份验证才能查看其他页面。我在我的所有页面上使用@cache\u控件(no\u cache=True,must\u revalidate=True,no\u store=True)来防止缓存。当用户点击“注销”时,返回按钮将在Firefox和Chrome上过期,但在IE8上有效

客户端将仅从IE8访问此应用程序。在用户注销并按下“后退”按钮后,是否有任何方法防止显示以前的页面

请注意,我已经将注销页面重定向回登录页面,但当用户单击后退按钮时,所有这些缓存页面仍将显示在IE8中


欢迎您的任何意见

似乎没有缓存可能是问题所在:

尝试清除无缓存并将Expires标头设置为-1

这是上面链接中的一个片段:

“以下是关键标题字段:

Last-Modified: Wed, 16 Feb 2011 13:52:26 GMT
Expires: -1
Cache-Control: must-revalidate, private
Last-Modified (or ETag) is needed as a validator
Expires-1表示资源已过时,必须重新验证 “缓存控制不能包括无缓存或无存储”

其他一些有用的链接:


当用户单击注销按钮时,我检查了IE版本。如果它是IE8,那么我将关闭当前窗口并打开一个新窗口来打开主页。否则,我什么也不做

我还添加了back
@never\u cache
@cache\u control(no\u cache=True、must\u revalidate=True、no\u store=True、max\u age=0)使Chrome和Firefox中的页面过期,以防某些用户有权在这些浏览器中运行应用程序


不完全是我想要的,但现在可以用了。仍在寻找更好的方法。

我尝试过删除无缓存、无存储并放入过期软件,但在IE中仍然不起作用。在Firefox中也不起作用。我的标题如下所示,Cache_控件必须重新验证,私有内容类型text/html;charset=utf-8 Date Fri,2015年1月30日16:12:17 GMT过期-1我链接的堆栈溢出帖子也提到需要最后修改或电子标签-您的标题是否包含其中一个?我错过了Etag部分。但是,由于我不知道如何在Django视图中设置Etag,我引用了这个链接,并使用response['Etag']=''%s''%hashlib.md5(response.content).hexdigest()来设置Etag。现在标题看起来像这样,Cache_控件必须重新验证,私有内容类型text/html;charset=utf-8日期2015年1月30日星期五21:20:35 GMT Etag“159EDA72E7BF45F769CC1BAB5A02A89”过期-1 IE8仍未过期。