在加载图像的播放框架中,我使用@routes.Assets.at
像
但我只想在这个 logo.png 可用的情况下加载这个图像。因为在没有图像的情况下,它显示的是空白图像空间。
有没有类似的语法
@routes.Assets.at("public/images", "logo.png").getorelse() 有点……但返回类型不是这里的类型选项。
在加载图像的播放框架中,我使用@routes.Assets.at
像
但我只想在这个 logo.png 可用的情况下加载这个图像。因为在没有图像的情况下,它显示的是空白图像空间。
有没有类似的语法
@routes.Assets.at("public/images", "logo.png").getorelse() 有点……但返回类型不是这里的类型选项。
我怀疑您的方法是否正确,因为图像需要宽度、高度和 alt 属性。如果您有该数据,您应该已经知道该图像存在。
您可以创建一个模板 img.scala.html:
@(path: String, width: Int, height: Int, alt: String = "")
@import play.api.Play.resource
@import play.api.Play.current
@if(resource("public/" + path).isDefined) {
<img src="@routes.Assets.at(path)" width="@width" height="@height" alt="@alt"/>
}
并以这种方式使用它:
<hr>
@img("images/favicon.png", 16, 16, "play framework logo")
<hr>
@img("images/not-existing.png", 16, 16, "foo bar")
<hr>
所以它会导致:
<hr>
<img src="/assets/images/favicon.png" width="16" height="16" alt="play framework logo"/>
<hr>
<hr>
项目:https ://github.com/schleichardt/stackoverflow-answers/tree/so18605473