【发布时间】:2017-11-05 21:22:58
【问题描述】:
我遵循了Stack overflow Link 中提供的解决方案,当我在浏览器中使用它时,它运行良好。但是,当我尝试使用 curl 访问该 url 时,它不会为浏览器缓存..
让我解释一下。
如果我从我的 chrome 中点击像
example.org/results?limit=7这样的网址,它 需要8-10 seconds来加载和连续点击需要时间milliseconds
所以我所做的就是用curl 命令调用这个URL;但它没有使用缓存的数据并再次创建了缓存。
所以我发现问题出在下面代码中的arg 参数,因为它包含WSGIRequest 对象中的浏览器标头,该对象用于缓存键,因为它还包含我不需要的标头用于缓存。这没有达到我的 curl 请求从 celery task 自动创建缓存的目的。
@method_decorator(cache_page(60 * 60 * 24))
def dispatch(self, *arg, **kwargs):
print(arg)
print(kwargs)
return super(ProfileLikeHistoryApi, self).dispatch(*arg, **kwargs)
我能做的是只传递kwargs 来创建缓存或任何其他替代方法,我可以通过这些替代方法只缓存url 而不是标题
提前感谢您的帮助。
【问题讨论】:
标签: django curl django-rest-framework django-cache django-caching