模板路徑與路由路徑是兩件事情。
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,不太確定。有結論了再來補充。