是否可以在每个路由中使用不同的响应标头?
你可以在这里看到我的源代码:
- 索引文件:
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);
但在这种情况下,两个路由都被缓存。
有什么想法吗?
谢谢!
对我来说,看起来你在中间件中的缓存逻辑是相反的。在路由/no-cache/
将SLIM_PAGE_CACHER
标头设置为值为 1
的CACHE_DISABLED
。
在中间件中,您将SLIM_PAGE_CACHER
标头与值为 0
的CACHE_ENABLED
标头进行比较。这变成了:
$this->skip_caching (1 == 0); /* This evaluates to false */
这意味着skip_caching
为假,页面将被缓存。
通常,最好避免代码中的双重否定。它们使代码难以阅读和理解。遵循惯例并假设1 === true
和0 === false
也是个好主意,反之亦然。