首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony 4 HTTP缓存头在分析器和浏览器中不相同

Symfony 4 HTTP缓存头在分析器和浏览器中不相同
EN

Stack Overflow用户
提问于 2021-08-28 11:03:43
回答 1查看 128关注 0票数 0

对于网站开发,我尝试使用文档中描述的Symfony 4 HTTP缓存。

我创建了一个名为CacheKernel的index.php,如下所示:

代码语言:javascript
复制
namespace App;

use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;

class CacheKernel extends HttpCache
{

}
代码语言:javascript
复制
// index.php
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
$kernel = new CacheKernel($kernel);
$request = Request::createFromGlobals();

在网页行动中:

代码语言:javascript
复制
$response->setPublic();
$response->setMaxAge(3600);
$response->headers->addCacheControlDirective('must-revalidate', true);

return $response;

在分析器中,头是设置:

缓存控制"max-age=3600,必须重新验证,公共的“

但是在浏览器中,头文件是不一样的,我认为缓存没有存储:

缓存-控制:最大值=0,必须重新验证,私有

您是否有一些ides来理解为什么头是不一样的,为什么缓存不工作请?

如何确保缓存正常工作,是否有一些日志?

非常感谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2021-08-28 18:57:12

我可能错了,因为它涉及到您的实现,但是,如果您是在dev环境中,缓存是禁用的。这样您就可以立即看到更改,而不必在每次编辑后手动清除缓存,就像以前的Symfony版本一样。分析器显示了您在prod中所期望的内容,这一事实告诉我,它正在工作,只是因为在dev中而被覆盖。

尝试切换到prod

查看X-Symfony-Cache头以获得有关缓存命中和丢失的调试信息。 --Cache.html#期满-缓存

还有一个日志:

缓存内核有一个特殊的getLog()方法,它返回缓存层中发生的事情的字符串表示形式。在开发环境中,使用它来调试和验证缓存策略: Error_log($内核->getLog()); --Cache.html#symfony-反向代理

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68963729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档