Apache Roller - 如何通过Velocity模板获取当前页面路径的绝对URL

时间:2014-08-08 03:18:58

标签: url velocity apache-roller

我无法通过Apache Roller的Velocity模板语言找到如何获取当前页面的完整URL的方法。

到目前为止,我试过了:

  • $url.absoluteSite - 这给出了网站的TLD,但没有路径。
  • $url.site - 什么也没给我(可能是因为Tomcat的虚拟主机设置)

我尝试了滚动模板指南给出的各种方法的其他组合,但没有一个产生任何结果。

我不确定Roller是否安装了Velocity工具,我尝试了一些与LinkTool相关的StackOverflow示例,但似乎它没有用。

嗯,这就是它的简短 - 我只需要一行Velocity代码来获取Roller中当前的完整URL。

非常感谢大家!

2 个答案:

答案 0 :(得分:0)

当然,Roller包含了Velocity,包括你可以利用的generic macros。此外,只需打开预先打包的主题,您就可以看到Roller如何使用Velocity生成许多URL。例如,Roller博客的主页是

$url.home

任何给定博客条目的固定链接

<a href="$url.entry($entry.anchor)">Permalink</a> 

及其评论页面为:

<a href="$url.comments($entry.anchor)">Comments</a>

以上内容捕获了Roller产生的大多数页面,可能会照顾您的需求。我不确定你是否能够找到任意页面将呈现的URL的通用宏,因为这主要取决于模板的编写方式,而不是这些模板上使用的宏。

答案 1 :(得分:0)

Glen:感谢您的回复 - 很好地总结了我应该从哪里来解决Roller中URL的问题。

只是在这里留下一些建设性的评论 - 出于某种原因(也许我的机器中有鬼)但是固定链接对我不起作用,但这样做:

<a href="$url.entry($model.weblogEntry.anchor)">Permalink</a> 

...以及页面......

<a href="$url.page($model.weblogPage.link)">Permalink</a> 

......我不知道为什么这些工作以及为什么你的例子(原始文件中也显示)也没有。

我没有对在类别浏览或搜索功能中创建URL进行任何调查,但我想它会遵循类似的模式。

无论如何,谢谢你的帮助,现在一切都好!