IndexController重定向到index.html后,请问在html中的css、js路径如何动态加上上下文路径(项目名称)?

IndexController重定向到index.html后,请问在html中的css、js路径如何动态加上上下文路径(项目名称)?


@JFinal

评论区

JFinal

2017-09-26 14:52

如果是用的jfinal template,只需要配置一句:
engine.addShardObject("ctx", JFinal.me().getContextPath());
然后就可以在页面中这样来用:
#(ctx)/path/path/xxx.js

如果是用的别的模板引擎,则可以添加一个Handler解决:
me.add(new ContextPathHandler("ctx"));

注意:这个 "ctx" 是可以根据个人喜好任意取名的

victorlhh

2017-09-26 15:06

@JFinal

有添加一个Handler,但是感觉没有效果,不清楚是哪个地方没有配置?

在JFinalConfig中添加Handler源码:

@Override
public void configHandler(Handlers me) {
JDruidStatViewHandler viewHandler = new JDruidStatViewHandler("/druid");
me.add(viewHandler);
me.add(new ContextPathHandler("ctx"));
}

IndexController中的index方法只是简单的重定向到index.html
// 首页
public void index(){
redirect("/index.html");
}

在index.html中添加${ctx}:


帮忙分析一下该问题如何解决?感谢

victorlhh

2017-09-26 15:07

href="${ctx}/statics/img/favicon.png"

被过滤了,把路径贴出来

JFinal

2017-09-26 16:40

@victorlhh redirect 只能是 url,而不是能一个模板文件,所以,要么 redirect(action) ,要么 render("index.html")

注意用的什么模板引擎,jfinal 模板引擎用的 #(ctx),否则要用 ${ctx}

热门反馈

扫码入社