playframework – 可以使用play framework 2来美化scala模板吗?
发布时间:2020-12-16 09:35:20 所属栏目:安全 来源:网络整理
导读:使用Play Framework 2我注意到渲染的Scala HTML模板不像缩进的@if或@for。 所以,例如,像这样的东西: ul @for(test - tests) { li@test.name/li }/ul 会有额外的不需要的空间。要解决它,我需要做这样的事情: ul@for(test - tests) { li@test.name/li}/ul
使用Play Framework 2我注意到渲染的Scala HTML模板不像缩进的@if或@for。
所以,例如,像这样的东西: <ul> @for(test <- tests) { <li>@test.name</li> } </ul> 会有额外的不需要的空间。要解决它,我需要做这样的事情: <ul> @for(test <- tests) { <li>@test.name</li> } </ul> 哪些会使其他@defining或其他语句变得混乱。 那么,是否有一种美化/美化Scala模板渲染的方法,以摆脱额外的空白处? 更新: 阅读this thread我注意到额外的空格和换行符也被添加,因为在模板顶部的参数。所以这: @(myParam: String) <!DOCTYPE html> <html> <head></head> <body></body> </html> 将在结果HTML之上添加3个额外的换行符。这是绝对烦人的。 线程似乎说,目前没有任何选择可以纠正。 解决方法
所以对于更多的细节我已经使用@biesor的答案,并通过这些步骤:
添加HtmlCompressor作为插件 在Build.scala中: val appDependencies = Seq( "com.googlecode.htmlcompressor" % "htmlcompressor" % "1.5.2" ) PrettyController public class PrettyController extends Controller { public static Results.Status ok(Content content) { return Results.ok(prettify(content)).as("text/html; charset=utf-8"); } public static Results.Status badRequest(Content content) { return Results.badRequest(prettify(content)).as("text/html; charset=utf-8"); } public static Results.Status notFound(Content content) { return Results.notFound(prettify(content)).as("text/html; charset=utf-8"); } public static Results.Status forbidden(Content content) { return Results.forbidden(prettify(content)).as("text/html; charset=utf-8"); } public static Results.Status internalServerError(Content content) { return Results.internalServerError(prettify(content)).as("text/html; charset=utf-8"); } public static Results.Status unauthorized(Content content) { return Results.unauthorized(prettify(content)).as("text/html; charset=utf-8"); } private static String prettify(Content content) { HtmlCompressor compressor = new HtmlCompressor(); String output = content.body().trim(); if (Play.isDev()) { compressor.setPreserveLineBreaks(true); } output = compressor.compress(output); return output; } } 那么每个控制器都应该扩展PrettyController。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |