mirror of https://gitee.com/answerdev/answer.git
fix sitemap
This commit is contained in:
parent
3092954e68
commit
cacf5e309f
|
@ -25,6 +25,11 @@ func (t *TemplateRenderController) Sitemap(ctx *gin.Context) {
|
||||||
log.Error("get site general failed:", err)
|
log.Error("get site general failed:", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
siteInfo, err := t.siteInfoService.GetSiteSeo(ctx)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("get site GetSiteSeo failed:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
sitemapInfo := &schema.SiteMapList{}
|
sitemapInfo := &schema.SiteMapList{}
|
||||||
infoStr, err := t.data.Cache.GetString(ctx, schema.SitemapCachekey)
|
infoStr, err := t.data.Cache.GetString(ctx, schema.SitemapCachekey)
|
||||||
|
@ -32,6 +37,10 @@ func (t *TemplateRenderController) Sitemap(ctx *gin.Context) {
|
||||||
log.Errorf("get Cache failed: %s", err)
|
log.Errorf("get Cache failed: %s", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
hasTitle := false
|
||||||
|
if siteInfo.PermaLink == schema.PermaLinkQuestionIDAndTitle || siteInfo.PermaLink == schema.PermaLinkQuestionIDAndTitleByShortID {
|
||||||
|
hasTitle = true
|
||||||
|
}
|
||||||
if err = json.Unmarshal([]byte(infoStr), sitemapInfo); err != nil {
|
if err = json.Unmarshal([]byte(infoStr), sitemapInfo); err != nil {
|
||||||
log.Errorf("get sitemap info failed: %s", err)
|
log.Errorf("get sitemap info failed: %s", err)
|
||||||
return
|
return
|
||||||
|
@ -45,6 +54,7 @@ func (t *TemplateRenderController) Sitemap(ctx *gin.Context) {
|
||||||
"xmlHeader": template.HTML(`<?xml version="1.0" encoding="UTF-8"?>`),
|
"xmlHeader": template.HTML(`<?xml version="1.0" encoding="UTF-8"?>`),
|
||||||
"list": sitemapInfo.QuestionIDs,
|
"list": sitemapInfo.QuestionIDs,
|
||||||
"general": general,
|
"general": general,
|
||||||
|
"hastitle": hasTitle,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
|
@ -68,6 +78,15 @@ func (t *TemplateRenderController) SitemapPage(ctx *gin.Context, page int) error
|
||||||
log.Error("get site general failed:", err)
|
log.Error("get site general failed:", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
siteInfo, err := t.siteInfoService.GetSiteSeo(ctx)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("get site GetSiteSeo failed:", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
hasTitle := false
|
||||||
|
if siteInfo.PermaLink == schema.PermaLinkQuestionIDAndTitle || siteInfo.PermaLink == schema.PermaLinkQuestionIDAndTitleByShortID {
|
||||||
|
hasTitle = true
|
||||||
|
}
|
||||||
|
|
||||||
cachekey := fmt.Sprintf(schema.SitemapPageCachekey, page)
|
cachekey := fmt.Sprintf(schema.SitemapPageCachekey, page)
|
||||||
infoStr, err := t.data.Cache.GetString(ctx, cachekey)
|
infoStr, err := t.data.Cache.GetString(ctx, cachekey)
|
||||||
|
@ -85,6 +104,7 @@ func (t *TemplateRenderController) SitemapPage(ctx *gin.Context, page int) error
|
||||||
"xmlHeader": template.HTML(`<?xml version="1.0" encoding="UTF-8"?>`),
|
"xmlHeader": template.HTML(`<?xml version="1.0" encoding="UTF-8"?>`),
|
||||||
"list": sitemapInfo.PageData,
|
"list": sitemapInfo.PageData,
|
||||||
"general": general,
|
"general": general,
|
||||||
|
"hastitle": hasTitle,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
return nil
|
return nil
|
||||||
|
|
|
@ -2,7 +2,11 @@
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
{{ range .list }}
|
{{ range .list }}
|
||||||
<url>
|
<url>
|
||||||
|
{{if $.hastitle}}
|
||||||
<loc>{{$.general.SiteUrl}}/questions/{{.ID}}/{{.Title}}</loc>
|
<loc>{{$.general.SiteUrl}}/questions/{{.ID}}/{{.Title}}</loc>
|
||||||
|
{{else}}
|
||||||
|
<loc>{{$.general.SiteUrl}}/questions/{{.ID}}</loc>
|
||||||
|
{{end}}
|
||||||
<lastmod>{{.UpdateTime}}</lastmod>
|
<lastmod>{{.UpdateTime}}</lastmod>
|
||||||
</url>
|
</url>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
Loading…
Reference in New Issue