问题标签 [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.
symfony - 如何使缓存标记与 FOSHttpCacheBundle 和 Varnish 一起使用?
我配置了 Symfony 和 FOSHttpCacheBundle(遵循FOSHttpCache 文档中的 Varnish 配置说明)。
我向控制器添加了一个操作,该操作test
在响应 HTTP 标头中添加了一个标记:
但是,每当我调用/test1
URL 时,数字都会改变,显示缓存未激活。请注意,我的应用程序不使用任何 cookie,并且我可以测试标头是否已发送到 Varnish(由于该指令X-Cache-Tags
,它会在对浏览器的响应中将其剥离)。vlc_deliver
配置中有什么我会错过的吗?Varnish 和 Nginx 都运行在同一台服务器上。
这是我的 Symfonyconfig.yml
文件中与 HTTP 缓存相关的配置:
和清漆配置/etc/varnish/default.vcl
:
symfony - 如何在 Symfony 中将 Cache-Control 设置为无缓存 - FOSHttpCacheBundle
问题:即使在注销后,在浏览器中点击返回按钮也会呈现安全页面的缓存版本。
我正在尝试使用FOSHttpCacheBundle
. 这是我的配置:
虽然它正在设置Cache-Control:no-cache, private
但没有定义,Pragma: no-cache
并且应该Expires: -1
根据文档定义标题。
这是我的响应标题:
有人请解释我错过了什么!
谢谢
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 类构造函数,这非常有意义。
所以问题是,是不是文档不是最新的,还是只是我错过了一些非常明显的东西?
symfony - 将 cookie 传递到 CloudFront 源但阻止缓存
我在 Symfony Web 应用程序前面使用 CloudFront 作为缓存。为了根据用户角色(管理员、客户...)获取缓存,我在 Lambda@Edge 查看器请求触发器中生成基于用户角色的哈希。我将该哈希作为请求标头传递给我的来源,作为X-User-Context-Hash
.
我现在的问题是我需要将PHPSESSID
cookie 传递到我的源以获得正确的缓存响应,但我不想将缓存基于PHPSESSID
. 我只需要基于我的会话 cookie 的值X-User-Context-Hash
而不是基于我的会话 cookie 的缓存响应。
下面的图片应该详细解释我的问题
有没有可能做到这一点?
将不胜感激任何帮助。
这是我的 Lambda@Edge 查看器请求触发器:
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.
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 文件中定义)