1

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

到目前为止,我尝试过:

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

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

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

好吧,简而言之——我需要的只是一行 Velocity 代码,它可以在 Roller 中获取当前的完整 URL。

非常感谢各位!

4

2 回答 2

0

格伦:谢谢你的回复——它很好地总结了我应该从哪里来解决这个在 Roller 中的 URL 问题。

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

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

...对于页面...

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

...我不知道为什么这些工作以及为什么您的示例(也显示在原始文档中)不工作。

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

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

于 2014-08-08T16:12:01.817 回答
0

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

$url.home

任何给定博客条目的永久链接是

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

它的评论页面是:

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

以上捕获了 Roller 生成的大部分页面,或许可以满足您的需求。我不确定您是否能够找到任何任意页面将呈现为 URL 的通用宏,因为这主要取决于模板的编写方式,而不是在这些模板上使用的宏。

于 2014-08-08T06:11:04.417 回答