模板路径与路由路径是两件事情。
public void configEngine(Engine me) {
// xg添加,shiro标签支持
// ShiroKit.initDirective(me);
// me.addDirective("userCount", UserCountTag.class);
me.setDevMode(true);
// me.addSharedObject("so", new ShiroFunction());
// me.addSharedObject("menu", new MenuFunction());
// me.addSharedObject("breadcrumbs", new BreadCrumbsFunction());
me.addSharedObject("xg", XgXg.getInstance());
me.setBaseTemplatePath(PathKit.getWebRootPath() + "");// 模板基础解析路径为 网站根
me.addSharedFunction("/WEB-INF/view/common/_layout.html"); // 模板方法 全局化
me.addSharedFunction("/WEB-INF/view/common/_paginate.html");
}
在添加全局模板时,使用的是Engine的baseTemplatePath做为路径基准,上面红的是默认的设置值,若改成自己的,一定要加回它,否则出来的路径不是你想要的,只有\这样的。
另一个地方,是视图路由的找模板(称为view,当另一个理解更好),
public void configRoute(Routes me) {
me.setBaseViewPath("/WEB-INF/view"); // 设置controller视图的相对位置 不同路由不同view基址
me.add("/", MainController.class, "/"); // 第三个参数为该Controller的视图存放路径
me.add("/blog", BlogController.class); // 第三个参数省略时默认与第一个参数值相同,在此即为baseViewPath+"/blog/",有方法再加方法,无方法 +"index"
me.add("/user", UserController.class); // 第三个参数省略时默认与第一个参数值相同,在此即为
me.add("/role", RoleController.class);
me.add("/res", ResController.class);
// me.add("/login", IndexController.class,"/index"); //
// me.add(new BizRoutes());
// me.add(new AdminRouts());
}
具体找view的路径是 baseTemplatePath+ (baseViewPath+约定路径)+方法名,
或者有第三参数时: baseTemplatePath+ 第三参数+方法名,
至于模板内部 #include("相对路径"),我还没试过用绝根路径,使用 ../../这种路径还没出过错。是根在 webrootPath,还是baseViewPath,不太确定。有结论了再来补充。