我在symfony应用程序中使用Varnish作为API平台端点。API平台版本是2.6,由于我升级到了PHP 8,API平台配置中的cache_headers选项不再工作。
我为一个特定的API平台端点配置了这个配置
collectionOperations:
voucher_list:
method: GET
cache_headers:
max-age: 3600
shared_max_age: 3600
path: /account/{account_id}/vouchers
requirements:
account_id: '\d+'
normalization_context:
groups: ['voucher_list:read']
这在php7.4上运行得很好。
现在,Cache-Control在此端点上的值为no-cache。
只有在API_platform.yaml中设置了默认配置,才会设置缓存控制
http_cache:
max_age: 3600
shared_max_age: 3600
vary: ['Accept']
public: true
1条答案
按热度按时间ufj5ltwl1#
在收集操作
cache_headers
中,最大年龄定义为max-age
,而不是max_age
正如我在此文档www.example.com中看到https://api-platform.com/docs/core/performance/#setting-custom-http-cache-headers
max_age
似乎是正确的参数名。正如您在通用配置中所看到的,您正确地将http_cache
设置为max_age
即使在API平台2.6中https://api-platform.com/docs/v2.6/core/performance/#setting-custom-http-cache-headers