freemarker <#include> 缓存问题
<#if val=="first">
<#include "/bluecms_sys/template/first.html"/>
<#elseif val=="channel">
<#include "/bluecms_sys/template/channel.html"/>
<#elseif val=="content">
<#include "/bluecms_sys/template/content.html"/>
</#if>
就这段代码,我是想每次进到这个页面的时候都会根据不同的选择进入包含不同的页面中,我是通过读取不同模板中的首页(first),或者栏目页(channel),或者内容页(content)不同风格的页面,之后把这样的页面用IO流写入到first.html,或者channel.html,或者content.html中,之后就会在上面的代码所在的页面中显示出来,问题是我更换模板的时候会把原来的页面效果也加载进来,但是你看源码是没有加载进来的,我试想这应该事freemarker模板的缓存问题
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
有没试过,如果包含的ftl文件不存在,会怎么处理?怎么判断以做跳转?
恩 我试试刚才那哥们说的方法
QQ?是什么东西?
回复
好几年没玩了,好像是页面报ftl的错误
对于cms系统,最好用SSI(服务端包含,一般后缀名为shtml),html文件用定时任务生成
<!--#include file="test.html" -->
我的另外一个项目用了很多 #include 的,但是是 .ftl 文件,不是 .html 文件,挺好的,没任何问题
用这个试试,我这样用的,代码很少:
<#include "/bluecms_sys/template/${val}.html"/>
呵呵,刚刚出去吃饭了,我代码里写的是IO流的读写,直接访问没任何问题,但是一旦你访问过一次之后再去include其他的页面就会出现缓存问题,我也郁闷了很久,第一次生成相应的html并且到index页面没任何问题(index.html中包含上面问题的代码段),而第二次就会出现相应的问题了,加载的html代码没问题,但是显示却是前后两个页面的内容
直接访问3个html页面有问题没,是不是写文件出啥问题了?用了好多年freeemarker了,还真没发现有这功能,只知道模版是有缓存的,但是一更新就全换了,没原来的东西。
就是每更换一次模板,在加载页面中都会把上几次更换的模板现在出来,导致包含的页面非常乱
出了什么问题呢?