有没有办法确保页面来自生产服务器和开发服务器上的缓存?
解决方案不应涉及缓存中间件,因为并非每个项目都使用它们.虽然解决方案本身可能是一个中间件.
只检查数据是否陈旧不是一种非常安全的IMO测试方法.
我们做了很多组件缓存,并不是所有组件都同时更新.因此,我们在通用包含的上下文处理器中设置主机和时间戳值.在每个模板片段的顶部,我们坚持:
component_name只是可以轻松地查看源代码并搜索该字符串.
我们作为对象详细信息页面的所有视图都定义了一个上下文变量"page_object",我们将它放在base.html模板主页的顶部:
class_id()是来自我们所有主要内容类使用的超类的方法.它只是:
def class_id(self): "%s.%s.%s" % (self.__class__._meta.app_label, self.__class__.__name__, self.id)
如果您加载一个页面并且任何时间戳都超过几秒钟,那么该组件被缓存是一个相当不错的选择.
Peter Rowells的建议很有效,但您不需要自定义模板上下文处理器来获取时间戳.您只需使用模板标记:
模拟视图,点击页面,看模拟是否被调用.如果不是,则使用缓存.