From 89274ea2bda0cd16cbcb8d8b6d2fe954835e36c4 Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Wed, 7 Oct 2026 17:31:09 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=AE=A2=E9=98=85=E5=BC=8F=E8=BD=AF?= =?UTF-8?q?=E4=BB=B6=E6=8F=90=E4=BE=9B):=20=E8=BF=9C=E7=AB=AF=E8=B5=84?= =?UTF-8?q?=E6=BA=90=E6=B5=8F=E8=A7=88=E5=99=A8=E4=BE=A7=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E4=B8=8E=E4=B8=BB=E6=9C=8D=E5=8A=A1=E7=BB=9F=E4=B8=80=E4=B8=BA?= =?UTF-8?q?=2024h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cache-Control 由 max-age=3600 改为 max-age=86400(复用 REMOTE_ASSET_TTL_SECONDS),保留 ETag 条件请求 --- gvsds/apps/gerp/apps/subscription/views.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gvsds/apps/gerp/apps/subscription/views.py b/gvsds/apps/gerp/apps/subscription/views.py index b8d6f036..53914751 100644 --- a/gvsds/apps/gerp/apps/subscription/views.py +++ b/gvsds/apps/gerp/apps/subscription/views.py @@ -430,7 +430,8 @@ class SubscriptionRemoteAssetView(APIView): GET /API/Subscription/RemoteAsset// - 缓存:内容落库,TTL 24 小时;过期回源并按内容 SHA256 判断是否变更 - - 响应带 ETag(SHA256):浏览器条件请求命中即 304,不回源 + - 浏览器侧同为 24h(`Cache-Control: public, max-age=86400`),并带 ETag(SHA256): + 过期/硬刷新后走条件请求,内容未变即 304,不回源 - 免登录:与子服务器原本的公开资源一致(页面渲染前浏览器无法携带业务鉴权) """ @@ -452,9 +453,8 @@ class SubscriptionRemoteAssetView(APIView): response = HttpResponse(payload['Content'], content_type=payload['ContentType']) response['ETag'] = etag - # 主服务侧缓存 24h(回源频率上限);浏览器侧 1h + ETag 条件请求, - # 便于提供者更新后 1 小时内可见,又不会频繁打到子服务器。 - response['Cache-Control'] = 'public, max-age=3600' + # 主服务侧与浏览器侧同为 24h(ETag 保留:硬刷新/过期后仍走条件请求,命中即 304) + response['Cache-Control'] = f'public, max-age={REMOTE_ASSET_TTL_SECONDS}' response['X-Remote-Cache'] = 'HIT' if payload['Hit'] else ('CHANGED' if payload['Changed'] else 'FRESH') return response