问题标签 [foshttpcachebundle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1120 浏览

symfony - 如何使缓存标记与 FOSHttpCacheBundle 和 Varnish 一起使用?

我配置了 Symfony 和 FOSHttpCacheBundle(遵循FOSHttpCache 文档中的 Varnish 配置说明)。

我向控制器添加了一个操作,该操作test在响应 HTTP 标头中添加了一个标记:

但是,每当我调用/test1URL 时,数字都会改变,显示缓存未激活。请注意,我的应用程序不使用任何 cookie,并且我可以测试标头是否已发送到 Varnish(由于该指令X-Cache-Tags,它会在对浏览器的响应中将其剥离)。vlc_deliver

配置中有什么我会错过的吗?Varnish 和 Nginx 都运行在同一台服务器上。

这是我的 Symfonyconfig.yml文件中与 HTTP 缓存相关的配置:

和清漆配置/etc/varnish/default.vcl

0 投票
0 回答
1533 浏览

symfony - 如何在 Symfony 中将 Cache-Control 设置为无缓存 - FOSHttpCacheBundle

问题:即使在注销后,在浏览器中点击返回按钮也会呈现安全页面的缓存版本。

我正在尝试使用FOSHttpCacheBundle. 这是我的配置:

虽然它正在设置Cache-Control:no-cache, private但没有定义,Pragma: no-cache并且应该Expires: -1根据文档定义标题。

这是我的响应标题:

有人请解释我错过了什么!

谢谢

0 投票
1 回答
385 浏览

php - 带有 Symfony 反向代理的 FOSHttpCache

所以我试图用默认的 Symfony HttpCache配置FOSHttpCacheBundle(最新版本 ^2.0) 。

根据文档,这是我的 AppCache.php 的内容:

现在根据Symfony 文档,启用缓存代理只需将 app.php 文件设置如下(取消注释最后一行):

这给了我一个很好的:

PHP 消息:PHP Catchable 致命错误:传递给 Symfony\Component\HttpKernel\HttpCache\HttpCache::__construct() 的参数 2 必须是 Symfony\Component\HttpKernel\HttpCache\StoreInterface 的实例,未给出,在 /php/api 中调用第 11 行的 /current/web/app.php 并在第 78 行的 /php/api/current/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpCache/HttpCache.php 中定义

鉴于 HttpCache 类构造函数,这非常有意义。

所以问题是,是不是文档不是最新的,还是只是我错过了一些非常明显的东西?

0 投票
4 回答
8614 浏览

symfony - 将 cookie 传递到 CloudFront 源但阻止缓存

我在 Symfony Web 应用程序前面使用 CloudFront 作为缓存。为了根据用户角色(管理员、客户...)获取缓存,我在 Lambda@Edge 查看器请求触发器中生成基于用户角色的哈希。我将该哈希作为请求标头传递给我的来源,作为X-User-Context-Hash.

我现在的问题是我需要将PHPSESSIDcookie 传递到我的源以获得正确的缓存响应,但我不想将缓存基于PHPSESSID. 我只需要基于我的会话 cookie 的值X-User-Context-Hash而不是基于我的会话 cookie 的缓存响应。

下面的图片应该详细解释我的问题

有没有可能做到这一点?

将不胜感激任何帮助。

在此处输入图像描述

这是我的 Lambda@Edge 查看器请求触发器:

0 投票
3 回答
4358 浏览

symfony - Symfony 3.4 http cache , always Cache-Control: max-age=0, must-revalidate, private

I try in annotation

or in controller

And still have Cache-Control: max-age=0, must-revalidate, private

App use sessions, user is login - I want - cache private, but nothing work - I always get this.

I've added FOS\HttpCacheBundle\FOSHttpCacheBundle()

(just add) Have hope to it override symfony cache and allow send cache private - but nothing change.

0 投票
1 回答
340 浏览

symfony - 使用 Symfony 内置反向代理的 FOSHttpCacheBundle 缓存失效不起作用

我正在尝试做一件困难的事情:使用 FOSHttpCacheBundle 2.9.0 和内置的 Symfony 反向代理,使用 Symfony 4.4.13 实现缓存失效。不幸的是,我不能使用其他缓存解决方案(如 Varnish 或 Nginx),因为我的托管服务不提供它们。所以,Symfony 内置的反向代理是我唯一的解决方案。

我已经安装并配置了 FOSHttpCacheBundle(按照文档)。还创建了一个 CacheKernel 类并修改了 Kernel 以使用它(遵循Symfony 官方文档FOSHttpCache 文档FOSHttpCacheBundle 文档)。

经过几次测试(使用我的浏览器),HTTP 缓存工作并且 GET 响应被缓存(在浏览器网络分析器中看到)。但是,当我使用 PUT/PATCH/POST 更新资源时,GET 响应仍然来自缓存,并且在到期之前保持不变。我的推论是无效化不起作用。

我做错了吗?你能帮我解决问题吗?请参阅下面的代码和配置。

配置/包/fos_http_cache.yaml

src/CacheKernel.php

src/内核.php

公共/index.php

我的控制器之一,src/Controller/SectionController.php(注意:路由在 YAML 文件中定义)