在 Scala Play 框架 2.4 中使用两个资产目录
Posted
技术标签:
【中文标题】在 Scala Play 框架 2.4 中使用两个资产目录【英文标题】:Working with two assets directories in Scala Play framework 2.4 【发布时间】:2015-11-12 14:20:30 【问题描述】:我正在尝试使用 2 条公共资产路线。一个用于开发版本,另一个用于生产版本。但是这个路由配置不起作用:对于两个路径我都收到 404 错误。
GET /assets/*file controllers.Assets.at(path="/public", file)
GET /us/*file controllers.Assets.at(path="/us", file)
对于旧的 play 2.0,我必须在 build.sbt 中配置额外的资产目录
playAssetsDirectories <+= baseDirectory / "us"
发布已编译目标中的所有文件。但是现在这个属性不存在了。
【问题讨论】:
【参考方案1】:这已在 Play 2.3 中进行了更改,此问题有 a migration guide。而是:
playAssetsDirectories <+= baseDirectory / "us"
您现在应该使用以下结构:
unmanagedResourceDirectories in Assets += baseDirectory.value / "us"
但是,这会将us
目录的内容复制到目标分发中的public
,因此请确保不要覆盖重要的内容。您可以在给定的文档中找到更多详细信息。
【讨论】:
它有效。但似乎最好只使用一个带有子文件夹的公用文件夹 - 因为在构建期间它们无论如何都会被合并。我的第一个想法是仅将一个文件夹用于开发版本。我正在将 grunt builder 用于静态事物 - 对于开发,我只是从 bower 和 node 组件中包含它而没有缩小但在生产中我应该只有一个 min.js 文件。但是,如果我的“我们”目录无论如何都会被复制(包含大量的 lib 目录),那也无济于事。以上是关于在 Scala Play 框架 2.4 中使用两个资产目录的主要内容,如果未能解决你的问题,请参考以下文章
Play Framework 2.4 在 Scala 模板中使用注入变量
如何在 play framework(scala) 2.4 中获取当前会话或请求对象?
在 Play Framework 2.4 中为 Scala 实现 Akka