繁体   English   中英

在Play Framework 2(Scala)中加载任意文件

[英]Loading an arbitrary file in the Play Framework 2 (Scala)

我正在尝试使用Play 2 Framework for Scala为AngularJS应用程序提供服务,我想我通常了解路由和模板的工作方式。

为了服务于angularJS文件(这应该是供用户公开),我正在把他们下/public对他们,然后创建路线。

我想在我的angular js文件所在的位置上有更多的灵活性。 我知道为此目的创建操作的assets.at()方法,但是无论我做什么, 我都无法提供位于/public以外的任何位置的文件 我将需要拦截该呼叫,并且仅在用户具有正确权限的情况下才提供javascript文件。

因此,我想我的问题是,这是否是我心目中正确的方法(选择性提供角度的JS文件-取决于权限等),以及我是否不得不将我的angularJS应用放在/public -无法从其他任何地方提供文件?

您可以包装内置的Assets控制器 不用默认的那样直接使用路由器直接调用它,而是调用自己的Action ,然后使用Action组合将其与授权逻辑包装在一起。

我想看看有什么不适合您。 应该允许您通过多种途径提供资产

routes.conf

GET     /assets/*file               controllers.Assets.at(path="/public", file)
GET     /secure/*file               controllers.Assets.at(path="/secure", file)

然后在您的模板中。

<script src="@routes.Assets.at("/public", "test.js")"></script>
<script src="@routes.Assets.at("/secure", "test.js")"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM