我正在尝试提供一个静态html文件,让我们为index.html
之类的所有动态网址调用/tachyon/someId
。此someId
是动态生成的。我尝试了多种方法来做到这一点,但都失败了。这就是我所尝试过的。
controllers.Assets.at(path="/public", file="index.html")
添加/tachyon/*someId
。这说错了参数someId。index.html
。由于index.html
不是scala.html
模板,因此也失败了。routes.Assets.at("index.html")
。这也失败了,因为我想返回Result
,但方法的返回类型不同。ok(routes.Assets.at("index.html")
。这也失败了说没有有效的呼叫确定。如果有办法通过控制器执行此操作并将Result
从task helper
类中的方法返回到task
会更好,因为我从方法返回Promise<Result>
在task
班。
答案 0 :(得分:0)
我认为您可以使用Twirl生成页面。由于您需要静态html,因此可以忽略正文中的参数。
所以在路线中,添加:
GET /tachyon/*someId somecontroller.index(someId)
在控制器的索引功能中,您可以返回
Ok(views.html.somepage(someId))
然后在views文件夹中创建somepage.scala.html Twirl函数,但不要在正文中使用someId。
答案 1 :(得分:0)
我得到了它的工作。不确定它是否是正确的解决方案。我通过将index.html
转换为字节数组然后使用ok
使用ByteArrayInputStream
进行渲染来渲染File file = Play.getFile("path to the file", Play.current());
byte[] byteArray = IOUtils.toByteArray(new FileInputStream(file));
return ok(new ByteArrayInputStream(byteArray)).as("text/html");
。这样的事情。
SUM
如果没有使用scala模板,是否有更好的方法可以告诉我。
由于