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

In Play [2.4.x] is it possible to detect a Twirl template's actual file name?

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

目前我有这样的东西:

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

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

我们可以检测到实际的文件名并让它自动渗透吗?

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

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

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

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