在Play [2.4.x]中是否可以检测Twirl模板的实际文件名?

时间:2015-08-27 14:44:57

标签: playframework-2.0 playframework-2.4

我希望在HTML的输出中放置标记(仅在开发期间),以便确切地知道在任何给定时间调用哪些模板和片段。 (这是一个庞大且不断发展的图书馆......)

目前我有这样的事情:

@if(tkAuthenticatedRequest.isDev) {<!-- mystuff.myform.helpers.snippet.scala.html -->}

这当然有效,但容易出错或遗漏。

我们可以检测实际的文件名并让它自动流失吗?

是否有更好的方法将其附加到dev并且根本不需要身份验证?虽然我已经lazy val对isDev进行了调用,但它只有一次点击,但我仍然可以接受更好的想法。

1 个答案:

答案 0 :(得分:1)

如果你想要实际的文件名,那么神奇的答案如下:

@if(tkAuthenticatedRequest.isDev) { 
  <!-- @Option(this.getClass().getProtectionDomain().getCodeSource()).map(x => x.getLocation()) --> 
}

请注意,Twirl很难消化它,除非它被分成三行,因此您可能想要从中创建一个Util函数,并将this.getClass()传递给该函数。