是否可以在每个路由中使用不同的响应头?
您可以在此处查看我的源代码:
https://github.com/Damian89/slim-filecaching/blob/master/index.php
https://github.com/Damian89/slim-filecaching/blob/master/Caching.slim.php
我有两条简单的路线。我喜欢仅在第一种情况下使用缓存,而不是第二种情况 - 但它不起作用。
如果您将以下代码直接放在第一条路线的上方:
$app->response->headers->set( PageCaching::SLIM_PAGE_CACHER, PageCaching::CACHE_ENABLED);
但在这种情况下,两个路由都被缓存。
有什么想法吗?
谢谢!
答案 0 :(得分:1)
对我来说,看起来中间件中的缓存逻辑是相反的。在/no-cache/
路线中,您将SLIM_PAGE_CACHER
标题设置为CACHE_DISABLED
,其值为1
。
在中间件中,您将SLIM_PAGE_CACHER
标头与值CACHE_ENABLED
的{{1}}进行比较。这变为:
0
这意味着$this->skip_caching (1 == 0); /* This evaluates to false */
为false,页面将被缓存。
一般来说,最好避免在代码中出现双重否定。它们使代码难以阅读和理解。遵循惯例并假设为skip_caching
和1 === true
,反之亦然。