有哪位大神玩过jfinal+webjars?请教怎么玩?

用jboot-admin做项目,多个项目并行,想将静态资源统一编写,希望集成webjars,不知道哪位哪位大神有实际操作过?@JFinal

评论区

海哥

2018-06-12 08:54

想将静态资源统一编写,配置好maven就可以了,在maven编译的过程中对静态资源统一拷贝到需求的maven模块。

不知道webjars是啥,没玩过

jasonbob

2018-06-12 11:42

多谢海哥回复,我希望建立一个一个单独的项目专门来管理静态资源,那么当我A B 这2个项目都需要的时候,maven怎么去copy呢,与没有例子啊?多谢

jasonbob

2018-06-12 17:21

我现在handler里面写了关于这个文件的处理,但是路径上我没有配置,比如我判断
public void handle(String target, HttpServletRequest request,
HttpServletResponse response, boolean[] isHandled) {
if (target.contains("/webjars/")) {
String path = StringUtils.substringAfter(target, "/webjars/");
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(path);
OutputStream outputStream = null;
try {
if (inputStream != null) {
outputStream = response.getOutputStream();
IOUtils.copy(inputStream, response.getOutputStream());
}
} catch (IOException e) {
log.error("cant get static resource : " + path + " from jar", e);
} finally {
IOUtils.closeQuietly(inputStream);
IOUtils.closeQuietly(outputStream);
}
isHandled[0] = true;
} else {
this.next.handle(target, request, response, isHandled);
}
}


但是我并不能走到这里,如果路径中带webjars的话,因为我没有在路由中配置,这个需要怎么做才能将 这个webjars请求走进来呢?我参考这个兄弟的https://my.oschina.net/u/2249085/blog/1518126,但是实际使用没有成功@JFinal @海哥

JFinal

2018-06-12 18:02

还没玩过 webjars,建议找找相关资料

或者不使用 webjars,而是用下面这几种方式:
http://www.jfinal.com/share/860
http://www.jfinal.com/share/786
http://www.jfinal.com/share/422

jasonbob

2018-06-12 18:42

其实现在最主要的问题就是我的请求到不了这个handler,因为没有mapping这个路径,现在想了解怎么样才能让handler接管所有的请求,只要域名和端口是对的,到了这个服务的所有请求都走到handler来就能解决

JFinal

2018-06-12 18:45

@jasonbob handler 天然就是接管所有请求的,没有接管,应该是你没配置:
me.add(new MyHandler())

jasonbob

2018-06-12 22:35

@JFinal 我是在jboot环境下,其实有配,其他我配置了的请求都能进来,就这个进不来,莫非jboot这个handler的注入方式不一样?

@Override
public void onHandlerConfig(JfinalHandlers handlers) {
handlers.add(new ContextPathHandler("ctxPath"));
handlers.add(new WebJarsHandler());
}

jasonbob

2018-06-12 22:51

o哦 我知道了,是因为url里面带有点的都给放走了,我计划是通过http://ip:port/webjars/jquery.js这个方式来访问的

JFinal

2018-06-12 22:53

@jasonbob jboot 内部好像还有 handler,可能有干扰,对于带点的请求 jfinal 的 handler 也是能接管的,总之 handler 可以接管所有请求

海哥

2018-06-14 08:57

@JFinal @jasonbob Jboot内置的handler可能在前面了,你添加handler的时候可以指定下索引。jboot的handler只是模仿了jfinal的handler,针对有点(.)的url进行过滤而已。

热门反馈

扫码入社