jfinal+beetl,静态资源映射如何配置?
//配置模板, 采用beetl模板引擎 me.setMainRenderFactory(new AppBeetlRenderFactory()); //获取GroupTemplate模板,可以设置共享变量操作 GroupTemplate groupTemplate = AppBeetlRenderFactory.groupTemplate; WebAppResourceLoader loader = (WebAppResourceLoader) groupTemplate.getResourceLoader(); loader.setRoot(getProperty("root.path"));
public void index() { setAttr("curpath", "console"); render("register.html"); }
log.info("设置 web 路径"); String cxt = getContextAllPath(request); request.setAttribute("cxt", cxt);
<link rel="stylesheet" href="${cxt!}/${curpath}/style/style.css">
资源文件取不到。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
参考JfinalUIB,里面有你需要的配置,环境和你说的几乎一致
有用到 JfinalUIB实现的 me.add(new GlobalHandler()); 还是不行。怀疑是不是jetty的问题。
回复
启动句改成:JFinal.start("src/main/webapp/WEB-INF/views", 80, "/", 5); 静态资源可以访问了。 render的controller访问又出问题了,在调试调试看。原来是:JFinal.start("src/main/webapp", 80, "/", 5); 静态的不行。
回复
资源路径用绝对路径是指这两种形式: "/path/abc.jpg" , 或者 "http://xxx.com/path/abc.jpg"。即以 "/" 或者 http 打头
回复
在jfinal项目开发中,会遇到render路径与静态资源路径重复现象,二者之间的协调是不是加一个相应的功能,spring mvc做的就比较好,可以借鉴下,提供静态资源的路径映射。比如http://localhost/console 如果是静态资源 就默认是console目录下的index.html 如果是render,可以指定的是login.html.
回复
通常静态资源都在 js、img、css 这几个目录下面,动态模板就在模块各自的目录下面,已经是分好了的
采用maven组织项目,静态文件结构如图:
设置了路径:
其中,root.path=src/main/webapp/WEB-INF/views
@JFinal ,试过还是访问不了呢?
controller是可以正常render到指定的页面。
使用 jfinal 提供的 ConextPathHandler 来做,在 YourJFinalConfig.configHandler(..) 中配置,然后可以直接使用:
使用方式: