【问题标题】:Playframework were to put files that get rendered in viewsPlay Framework 在哪里放置在视图中呈现的文件
【发布时间】:2014-11-30 03:41:19
【问题描述】:

我正在使用 playframework 从视图内的文件中呈现 Asciidoc 文本。 由于我认为使用了该内容,因此我希望能够将其放在 app/views 中,以便在使用 activator dist 进行部署时对其进行打包。

现在文件在运行activator dist 后会丢失。因为内容是由我的视图呈现的,所以我不想放入 public/app/assets

我的观点看起来非常简单:

@(html: String)(implicit flash: Flash, lang: Lang)

@main(Messages("application.name")){
  @Html(html)
}

我的控制器将字符串内容发送到视图:

def about = Action { implicit request =>
  Ok(views.html.statics.normal(Static.render_file("app/views/adoc/about.adoc")))
}

我应该把这个文件放在哪里?以及如何访问它而不是使用根路径?

【问题讨论】:

    标签: scala model-view-controller playframework-2.0 playframework-2.3


    【解决方案1】:

    您可以将“内部”文档放在conf 文件夹中,它相当于标准sbt 项目中的resources

    要访问它,您可以使用Play.resourceAsStream()。请注意,这会给您一个java.io.InputStream,因为您的文件将成为activator dist 创建的JAR 的一部分。

    Play.resourceAsStream("adoc/about.adoc") map { adocStream =>
      Ok(views.html.statics.normal(Static.render_file(adocStream)))
    } getOrElse (InternalServerError)
    

    【讨论】:

    • 谢谢,我编辑了您的答案以添加有关 Play.resource() 的信息。
    • 您有指向conf 目录中管理资源的一些文档的链接吗?除了来自游戏应用 conf → Configurations files and other non-compiled resources (on classpath) 解剖的这条小线之外,我在网上找不到任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-25
    • 2014-01-30
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    相关资源
    最近更新 更多