feat: 青主题产品壳与静态资源版本号

对齐 SPA 顶栏工具条与清青强调色,CSS/JS 带构建 ?v= 长缓存穿透。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-30 05:43:25 +08:00
parent 3bd0b990a1
commit e0683ef262
15 changed files with 827 additions and 554 deletions

View File

@@ -11,28 +11,29 @@ import (
// Deps 页面依赖
type Deps struct {
DataDir string
JWTSecret string
Settings *services.ForumSettingsService
Auth *services.AuthService
User *services.UserService
Board *services.BoardService
Post *services.PostService
Comment *services.CommentService
Message *services.MessageService
Filter *services.SensitiveFilter
Limiter *services.RateLimiter
EmailCode *services.EmailCodeService
Store *services.UploadStore
Points *services.PointsService
Badge *services.BadgeService
FriendLink *services.FriendLinkApplyService
Mail *services.MailService
SitePage *services.SitePageService
Report *services.ReportService
Captcha *services.CaptchaService
Notify *services.NotifyService
Backup *services.BackupService
DataDir string
JWTSecret string
AssetVersion string // 静态资源 ?v=;来自构建 ldflags
Settings *services.ForumSettingsService
Auth *services.AuthService
User *services.UserService
Board *services.BoardService
Post *services.PostService
Comment *services.CommentService
Message *services.MessageService
Filter *services.SensitiveFilter
Limiter *services.RateLimiter
EmailCode *services.EmailCodeService
Store *services.UploadStore
Points *services.PointsService
Badge *services.BadgeService
FriendLink *services.FriendLinkApplyService
Mail *services.MailService
SitePage *services.SitePageService
Report *services.ReportService
Captcha *services.CaptchaService
Notify *services.NotifyService
Backup *services.BackupService
}
// SitePageLink 导航/页脚站点单页链接
@@ -135,6 +136,7 @@ type PageChrome struct {
NavPages []SitePageLink
FooterPages []SitePageLink
RightAside RightAsideData
AssetVersion string
}
func (d Deps) ctx(c *gin.Context) *webctx.Context {
@@ -175,6 +177,10 @@ func (d Deps) chrome(ctx *webctx.Context, title, desc, inner string) PageChrome
path = ctx.C.Request.URL.Path
}
navPages, footerPages := d.sitePageLinks()
assetVer := strings.TrimSpace(d.AssetVersion)
if assetVer == "" {
assetVer = "dev"
}
return PageChrome{
Title: title,
Description: desc,
@@ -201,6 +207,7 @@ func (d Deps) chrome(ctx *webctx.Context, title, desc, inner string) PageChrome
NavPages: navPages,
FooterPages: footerPages,
RightAside: d.loadRightAside(ctx, brand),
AssetVersion: assetVer,
}
}