Play.current 已弃用 - 在控制器(Java Play Framework 2.7)使用的 class 中加载文件?

Play.current is deprecated - Load files in a class used by a Controller (Java Play Framework 2.7)?

在 Play Framework(版本 < 2.5)中,您可以通过以下方式从 /public/images 加载图像文件:

Option<URL> url = Play.current().resource("/public/images/myimage.png");
URL imageurl = url.get();

这适用于 DEV-模式,稍后适用于 PROD-模式。

Play.current().resource 的正确替换是什么以获得正确的文件路径?或者加载文件的最佳方式是什么?

因为正常的 Java-方法与 MyClass.getClass().getResource("/public/images/myimage.png") 或只是 MyClass.getClass().getResource("myimage.png")(当文件与 MyClass.java) 在 PROD 模式下不工作。

感谢您的帮助!

顺便说一句:其他类似问题(Play.current is deprecated in play 2.5 for eaxmple)没有帮助,因为我不想加载配置文件。

我猜你需要注入 Environment to get path to resource. It can be accomplished by calling resource 方法。

environment.resource("/public/images/myimage.png")