静态化站点,某一篇文章发布时会生成静态文件,此时下一篇文章还不存在,等下一篇文章发布时 也不会主动触发这篇文章静态页面的更新。
此时我们可以使用任务计划定时触发这些页面的更新,脚本如下
<#assign pageCount=50/> <#assign dealCount=0/> <#assign dealDate=(.now?long-1000*3600*24)?number_to_date?string/> <@_categoryList> <#list page.list as a> <#-- 遍历分类 --> <#-- 获取昨天发布的文章总数量 --> <@_contentList categoryId=a.id containChild=true startPublishDate=dealDate containChild=true pageIndex=1 count=pageCount> <#list 1..page.totalPage as n> <#-- 分批获取昨天发布的文章 --> <@_contentList categoryId=a.id containChild=true startPublishDate=dealDate containChild=true pageIndex=n count=pageCount> <#list page.list as a> <#-- 重新生成上一篇文章静态页面 --> <@_contentList categoryId=a.categoryId endPublishDate=a.publishDate orderField='publishDate' pageIndex=2 pageSize=1> <#if 2=page.pageIndex> <#list page.list as a> <@_publishContent id=a.id><#assign dealCount++/></@_publishContent> </#list> </#if> </@_contentList> </#list> </@_contentList> </#list> </@_contentList> </#list> 共生成${dealCount}条内容静态页面 </@_categoryList>
其中的逻辑是取昨天发布的文章,然后分别更新他们的上一篇文章,这里的昨天可以随任务计划执行频率修改,如果是昨天,那这个任务计划应该每天执行一次,改成上个小时,那就每个小时执行一次
下面也附上上一篇 下一篇的代码,防止搜到这篇文章的小伙伴真正想找的是上一篇下一篇怎么写 ,而不是静态化时如何用
<@_contentList categoryId=content.categoryId endPublishDate=content.publishDate orderField='publishDate' pageIndex=2 count=1><#if 2=page.pageIndex><#list page.list as a><a href="${a.url!}">上一篇 ${a.title}</a></#list></#if></@_contentList> <@_contentList categoryId=content.categoryId startPublishDate=content.publishDate orderField='publishDate' orderType='asc' pageIndex=1 count=1><#list page.list as a><a href="${a.url!}">下一篇 ${a.title}</a></#list></@_contentList>
2条评论
上一篇下一篇写成接口呢?不好吗,实时更新。。。。
你可以自己制作的这样的接口的 模版可以输出html 也可以输出json
发表评论