我的问题如下: 我去年为一个活动建立了一个网站(2014年版)。 现在我为同一个活动创建了一个网站,但今年(2015年)。 但是,每当我访问该网站时,它都会打开2014版本,即使我已将其他版本添加到... 按F5刷新页面,显示2015网站。
所以我认为问题是这个网页是一个缓存版本,这就是发生这种情况的原因。 这是我的问题: 有什么方法可以修复吗? (想一个JavaScript脚本来清除这个网站的每个访问者的缓存......)
P.S。:该网站在2015年使用HTML5,CSS3,JavaScript。2014年版本的HTML4和CSS2-3(idk)。
答案 0 :(得分:0)
为css和javascript做什么
class MyDocumentListApiView(generics.ListAPIView):
queryset = Document.objects.all()
serializer_class = DocumentSerializer
def list(self, request, *args, **kwargs): # override the 'list' method
instance = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(instance)
if page is not None:
serializer = self.get_pagination_serializer(page)
else:
serializer = self.get_serializer(instance, many=True)
serializer_data = serializer.data # get the default serialized data
custom_data = [{x['identifier':x['document']} for x in serializer_data] # create your custom response data
return Response(custom_data) # create response with this custom data
答案 1 :(得分:0)
这是一个非常好的缓存控制教程:http://www.mobify.com/blog/beginners-guide-to-http-cache-headers/
但是,如果你没有在2014版中应用这些技巧,我想没有好的方法可以使用户浏览器中已经缓存的2014版本到期。您现在可以做的最好的事情就是将2015版本放在不同的URL上。
答案 2 :(得分:0)
你无法清除传统的'浏览器缓存通过客户端或服务器端代码,至少不是以跨浏览器兼容的方式。您可以通过发送相应的标头或使用这些元标记告诉浏览器不要缓存您的页面:
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
替代方案您可以对所有资源进行版本控制,例如img-2015.png与img-2014.png
答案 3 :(得分:0)
如果浏览器过去没有计算过期日期,它可能会尝试使用HEAD方法的http请求。此方法应返回与GET相同的元数据。因此,您可以通过在HEAD请求上设置正确的http缓存标头来触发刷新GET请求。这应该强制浏览器将其缓存版本识别为陈旧,并使用GET检索数据。
答案 4 :(得分:-3)
一个选项是,您可以在服务器上为文件指定一个不同的位置,并进行服务器端重定向。