IndexController重定向到index.html后,请问在html中的css、js路径如何动态加上上下文路径(项目名称)?
1.如果是用的jfinal template(也就是html[freemark]),只需要配置一句:
@Override
public void configEngine(Engine me) {
me.addSharedFunction("/common/_layout.html");
me.addSharedFunction("/common/_paginate.html");
me.addSharedObject("ctx_path", JFinal.me().getContextPath());//配置这样一句
}
然后就可以在html页面中这样来用:
#(ctx_path)/path/path/xxx.js
点击<a href="#(ctx_path)/blog"><b>此处</b></a>开始试用Demo。
<form action="#(ctx_path)/blog/save" method="post">
#include("_form.html")
</form>
如果是用的别的模板引擎(jsp),则可以添加一个Handler解决:
@Override
public void configHandler(Handlers me) {
// 配置项目上下文路径,在页面用"${ctx_path}/",可以随例 命名
me.add(new ContextPathHandler("ctx_path"));
}
注意:这个 "ctx_path" 是可以根据个人喜好任意取名的
注意用的什么模板引擎,jfinal 模板引擎用的 #(ctx),否则要用 ${ctx}