从Play 2 Scala控制器提供静态/公共/文件
从
Play Framework 2 Scala控制器提供静态文件的首选方法是什么?
该文件与我的应用程序捆绑在一起,因此无法将文件系统绝对/路径/硬编码到/ /文件,因为它的位置取决于Play应用程序恰好安装的位置. 该文件放在public / dir中,但不在app / assets /中,因为我不希望Play编译它. (我不是简单地添加到该文件的路由的原因是,在访问该文件之前需要登录,否则它是没用的.) 这是我到目前为止所做的,但这在我的生产服务器上打破了. object Application ... def viewAdminPage = Action ... { ... authorization ... val adminPageFile = Play.getFile("/public/admin/index.html") Ok.sendFile(adminPageFile,inline = true) } 在我的路线文件中,我有这一行: GET / – / admin / controllers.Application.viewAdminPage 问题是在我的生产服务器上,会发生以下错误: 是否有其他方法,而不是Play.getFile和OK.sendFile,以指定要提供的文件?生产中从未打破过? (我的应用程序安装在/ some-dir / app1 /中,我从/ some-dir /(没有app1 /)启动它 – 如果我从/ some-dir / app1 /启动应用程序,也许一切都会正常工作.但是我我想知道一个“应该”如何做,从控制器内部提供一个静态文件?这样一切都可以在生产服务器上运行,无论我从哪里开始启动应用程序) 解决方法
Play有一个内置的方法:
Ok.sendResource("public/admin/file.html",classLoader) 您可以使用environment.classLoader或this.getClass.getClassLoader从注入的Environment获取类加载器. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |