jfinal+beetl,静态资源映射如何配置?

发布于 2021-11-24 20:52:57 字数 972 浏览 912 评论 8

//配置模板, 采用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

简单气质女生网名 2021-11-28 12:47:56

参考JfinalUIB,里面有你需要的配置,环境和你说的几乎一致

月亮是我掰弯的 2021-11-28 12:47:56

有用到 JfinalUIB实现的 me.add(new GlobalHandler()); 还是不行。怀疑是不是jetty的问题。

岁月打碎记忆 2021-11-28 12:47:54

回复
启动句改成:JFinal.start("src/main/webapp/WEB-INF/views", 80, "/", 5); 静态资源可以访问了。 render的controller访问又出问题了,在调试调试看。原来是:JFinal.start("src/main/webapp", 80, "/", 5); 静态的不行。

葬花如无物 2021-11-28 12:47:09

回复
资源路径用绝对路径是指这两种形式: "/path/abc.jpg" , 或者 "http://xxx.com/path/abc.jpg"。即以 "/" 或者 http 打头

醉生梦死 2021-11-28 12:29:56

回复
在jfinal项目开发中,会遇到render路径与静态资源路径重复现象,二者之间的协调是不是加一个相应的功能,spring mvc做的就比较好,可以借鉴下,提供静态资源的路径映射。比如http://localhost/console 如果是静态资源 就默认是console目录下的index.html 如果是render,可以指定的是login.html.

苍暮颜 2021-11-28 07:34:57

回复
通常静态资源都在 js、img、css 这几个目录下面,动态模板就在模块各自的目录下面,已经是分好了的

少女净妖师 2021-11-28 02:08:55

采用maven组织项目,静态文件结构如图:

设置了路径:

/配置模板, 采用beetl模板引擎
me.setMainRenderFactory(new AppBeetlRenderFactory());
	    
//获取GroupTemplate模板,可以设置共享变量操作
GroupTemplate groupTemplate = AppBeetlRenderFactory.groupTemplate;
	    
WebAppResourceLoader loader = (WebAppResourceLoader) groupTemplate.getResourceLoader();
loader.setRoot(getProperty("root.path"));

其中,root.path=src/main/webapp/WEB-INF/views

@JFinal ,试过还是访问不了呢?

controller是可以正常render到指定的页面。

浮生未歇 2021-11-27 23:34:19

使用 jfinal 提供的 ConextPathHandler 来做,在 YourJFinalConfig.configHandler(..) 中配置,然后可以直接使用:

public void configHandler(Handlers me) {
  me.add(new ContextPathHandler("cxt"));
}

使用方式:

<img src="${cxt}/path/path/abc.jpg" />

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文