我正在尝试将Handlebars.java挂钩作为Spring MVC的简单视图引擎。我为HandlebarsViewResolver
添加了一个Bean,可以获得渲染视图。
我现在要做的是将视图中的虚拟路径解析为绝对路径。例如,我有一个指向样式表的链接:
<link type="stylesheet" src="/style/theme.css" />
我需要将URL解析为绝对路径,该路径考虑了应用程序可能正在运行的虚拟主机路径。如果通过http://test.site.com/dev/
请求申请,则网址将解析为/dev/style/theme.css
。对于给定的请求,我可以轻松获取基本路径信息,但我唯一能想到的是为每个上下文向Handlebars上下文添加basePath
属性,并通过前缀解析虚拟路径。
<link type="stylesheet" src="{{baseUrl}}/style/theme.css" />
这意味着要么让我的所有模型都从一组基本属性继承,要么使用HandlerInterceptor
来处理要添加到属性中的每个模型。
我还看过创建一个帮助函数,但是我遇到了必须为每个请求添加上下文的相同问题,因为Spring似乎无法为每个请求创建ViewResolver
,依赖于我可以在辅助函数定义中使用的HttpServletRequest
。
我不禁觉得这是一个非常常见的场景,在大多数视图引擎中都可以满足。我错过了一些非常明显的东西吗?