diff --git a/agent/app/dto/request/website.go b/agent/app/dto/request/website.go index 26d1a5aaa531..86ec6f85b497 100644 --- a/agent/app/dto/request/website.go +++ b/agent/app/dto/request/website.go @@ -310,6 +310,7 @@ type WebsiteHtmlReq struct { type WebsiteHtmlUpdate struct { Type string `json:"type" validate:"required"` Content string `json:"content" validate:"required"` + Sync bool `json:"sync"` } type WebsiteLBCreate struct { diff --git a/agent/app/service/website.go b/agent/app/service/website.go index 0fc446d151b2..2d17c1395fab 100644 --- a/agent/app/service/website.go +++ b/agent/app/service/website.go @@ -2028,6 +2028,15 @@ func (w WebsiteService) UpdateDefaultHtml(req request.WebsiteHtmlUpdate) error { switch req.Type { case "404": resourcePath = path.Join(defaultPath, "404.html") + if req.Sync { + websites, _ := websiteRepo.GetBy(repo.WithTypes([]string{constant.Static, constant.Runtime})) + for _, website := range websites { + filePath := path.Join(GetSitePath(website, SiteIndexDir), "404.html") + if fileOp.Stat(filePath) { + _ = fileOp.SaveFile(filePath, req.Content, constant.DirPerm) + } + } + } case "php": resourcePath = path.Join(defaultPath, "index.php") case "index": diff --git a/frontend/src/api/interface/website.ts b/frontend/src/api/interface/website.ts index 3fedf7473cd7..5476ef2e19b4 100644 --- a/frontend/src/api/interface/website.ts +++ b/frontend/src/api/interface/website.ts @@ -612,6 +612,7 @@ export namespace Website { export interface WebsiteHtmlUpdate { type: string; content: string; + sync: boolean; } export interface NginxUpstream { diff --git a/frontend/src/views/website/website/html/index.vue b/frontend/src/views/website/website/html/index.vue index 60405661199d..08723167133a 100644 --- a/frontend/src/views/website/website/html/index.vue +++ b/frontend/src/views/website/website/html/index.vue @@ -1,6 +1,6 @@