我想启用图片,css和java脚本文件的浏览器缓存。
https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers
heroku文章在结论中说明了这一点:
"一旦理解了HTTP缓存背后的概念,下一步就是在您的应用程序中实现它们。大多数现代Web框架都是一项微不足道的任务。"
有人可以告诉我如何完成这项琐碎的任务吗?我有一个django-python app。
答案 0 :(得分:2)
像image,css和javascript这样的静态文件应该直接由网络服务器(例如Apache的nginx)提供,而不是由Django提供。因此,您应该在Web服务器配置中配置任何缓存,而不是Django。
如果您在Heroku上托管Django项目,他们似乎会根据whitenoise推荐this article。
答案 1 :(得分:2)
您的静态资源应该来自网络服务器,例如nginx或apache,而不是直接来自django但是为了回答您的问题,django会提供一个staticfiles
应用程序,假设您正在使用它来管理这些资源,如果所以,使用
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.CachedStaticFilesStorage'
settings.py
文件中启用django的静态文件缓存。
c.f https://docs.djangoproject.com/en/1.6/ref/contrib/staticfiles/#cachedstaticfilesstorage https://docs.djangoproject.com/en/1.7/ref/contrib/staticfiles/#cachedstaticfilesstorage
[1.6链接有更多解释如何工作]
对于django中的整体缓存,我建议阅读https://docs.djangoproject.com/en/1.7/topics/cache/
你可以在哪里看到如何使用中间件进行网站级缓存,或者cache_control
装饰器用于视图缓存,如下所示:
来自django.views.decorators.cache import cache_control
@cache_control(must_revalidate=True, max_age=3600)
def my_view(request):
# ...