From db2b38eedb29787aa60d60aaceec9a09b1fea614 Mon Sep 17 00:00:00 2001 From: KOMATA <20227709+HynoR@users.noreply.github.com> Date: Mon, 2 Feb 2026 11:14:30 +0800 Subject: [PATCH] fix: update browser cache handling in website proxy service (#11762) * fix: update browser cache handling in website proxy service - Adjusted cache time condition to allow for negative values, introducing a no-cache option. - Updated TypeScript interface to specify browser cache options as 'enable', 'disable', or 'noModify' for better clarity. * refactor: clean up imports and enhance browser cache comments in website proxy service - Removed unused import statements for better code clarity. - Added detailed comments to clarify the behavior of the cache time settings in the OperateProxy function. --- agent/app/service/website_proxy.go | 14 ++++++++++---- frontend/src/api/interface/website.ts | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/agent/app/service/website_proxy.go b/agent/app/service/website_proxy.go index 7ee6f6e25..0d79a5257 100644 --- a/agent/app/service/website_proxy.go +++ b/agent/app/service/website_proxy.go @@ -4,6 +4,10 @@ import ( "bytes" "errors" "fmt" + "path" + "strconv" + "strings" + "github.com/1Panel-dev/1Panel/agent/app/dto" "github.com/1Panel-dev/1Panel/agent/app/dto/request" "github.com/1Panel-dev/1Panel/agent/app/dto/response" @@ -17,9 +21,6 @@ import ( "github.com/1Panel-dev/1Panel/agent/utils/nginx/components" "github.com/1Panel-dev/1Panel/agent/utils/nginx/parser" "github.com/1Panel-dev/1Panel/agent/utils/re" - "path" - "strconv" - "strings" ) func (w WebsiteService) OperateProxy(req request.WebsiteProxyConfig) (err error) { @@ -119,8 +120,13 @@ func (w WebsiteService) OperateProxy(req request.WebsiteProxyConfig) (err error) location.RemoveServerCache(fmt.Sprintf("proxy_cache_zone_of_%s", website.Alias)) } // Browser Cache Settings - if req.CacheTime != 0 { + // cacheTime > 0: enable expires; + // cacheTime == 0: use upstream cache-control, remove self-set; + // cacheTime < 0: force no-cache + if req.CacheTime > 0 { location.AddBrowserCache(req.CacheTime, req.CacheUnit) + } else if req.CacheTime < 0 { + location.AddBroswerNoCache() } else { location.RemoveBrowserCache() } diff --git a/frontend/src/api/interface/website.ts b/frontend/src/api/interface/website.ts index ce6af12bf..23c399ef2 100644 --- a/frontend/src/api/interface/website.ts +++ b/frontend/src/api/interface/website.ts @@ -445,7 +445,7 @@ export namespace Website { allowHeaders: string; allowCredentials: boolean; preflight: boolean; - browserCache?: boolean; + browserCache?: 'enable' | 'disable' | 'noModify'; } export interface ProxReplace {