首先如下问题在window环境下运行正常,部署到linux环境下运行就发生的。
都是通过build.py打包后运行的 jar包
我在beetl根目录下写了个模板/pages/container.html
入口调用:
@At(value = {"/?/admin/page/?"},top = true)
@Ok("beetl:/pages/container.html")
@RequiresAuthentication
public Object page(String appName,String pageId,@Param("..") NutMap params,HttpServletRequest req) {
return NutMap.NEW();
}
没有问题。
但是如果通过代码的方式
Template template=Globals.groupTemplate.getTemplate("/pages/container.html");
template.binding("obj", NutMap.NEW());
String html=template.render();
则报找不到模板文件:
04:36:28:错找不到指定模板或者加载错(TEMPLATE_LOAD_ERROR): 位于0行 资源:/pages/container.html模板根目录为 /data/epei/tmp/webinf/WEB-INF/views
WebAppResourceLoader,Root=/data/epei/tmp/webinf/WEB-INF/views
上面根目录在linux下确实没有
这里的Globals.groupTemplate在setup中通过如下方式获取
//抓取Beetl的BeetlViewMaker获取模板组实例并设置为全局变量
for (ViewMaker vm : config.getViewMakers()) {
if (vm instanceof BeetlViewMaker) {
Globals.groupTemplate = ((BeetlViewMaker) vm).groupTemplate;
}
}