Facelets servlet有一个init-param facelets.REFRESH_PERIOD
。但是,将其设置为特定值毫无意义。如果它太小,比如10秒,缓存将超时太快。如果它不是那么小,比如说5分钟,那么当我对xhtml文件进行小的改动时,我必须经常重启Web服务器。 10到300秒之间的值可能更好,但绝不是最好的。
我正在使用Apache myfaces-impl,我对Sun JSF RI知之甚少。 (Sun JSF RI在我们的项目中不起作用)所以,我不知道这个问题是否特定于Apache Myfaces?
那么,而不是指定REFRESH_PERIOD
,我可以让myfaces-impl刷新那些被更改的文件吗?
(我想也许myfaces-impl没有得到文件的最后修改时间,因为它将文件解析为URL,并且URL没有最后修改时间属性,是吗?或者我应该有修补myfaces-impl自己?)
答案 0 :(得分:0)
javax.faces.FACELETS_REFRESH_PERIOD是标准的参数名称。
此参数用于重建视图的开发时间,因此您可以更改页面并动态检查更改。您不需要在生产中设置它。尝试将其设置为-1并禁用它。这是按预期工作的,因为实际上来自原始facelets代码,这对于两个jsf实现都是通用的。众所周知,像Google Application Engine(GAE)这样的环境不允许获取文件的最后修改时间,但我不相信这是你的情况。