MIDDLEWARE_CLASSES 的顺序
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
如果使用缓存中间件,注意在MIDDLEWARE_CLASSES
设置中正确配置。 因为缓存中间件需要知道哪些头部信息由哪些缓存区来区分。 中间件总是尽可能得想Vary响应头中添加信息。
UpdateCacheMiddleware
在相应阶段运行。因为中间件是以相反顺序运行的,所有列表顶部的中间件反而last在相应阶段的最后运行。 所有,你需要确保UpdateCacheMiddleware
排在任何可能往Vary
头部添加信息的中间件之前。 下面的中间件模块就是这样的:
- 添加 Cookie 的 SessionMiddleware
添加 Accept-Encoding 的 GZipMiddleware
添加Accept-Language的LocaleMiddleware
另一方面,FetchFromCacheMiddleware
在请求阶段运行,这时中间件循序执行,所以列表顶端的项目会首先执行。FetchFromCacheMiddleware
也需要在会修改Vary
头部的中间件之后运行,所以FetchFromCacheMiddleware
必须放在它们后面。
在线练习
{$ activeFileHint $}