Playframework 2.0 Scala模板是否有文件大小限制?

Playframework 2.0 Scala模板是否有文件大小限制?,playframework-2.0,Playframework 2.0,我有一个scala模板,其中包含嵌入的硬编码图像 (例如 当我编译应用程序时,我得到以下错误 java.io.IOException: invalid constant type: 106 at 119 at javassist.bytecode.ConstPool.readOne(ConstPool.java:1044) at javassist.bytecode.ConstPool.read(ConstPool.java:984) at javassist.bytec

我有一个scala模板,其中包含嵌入的硬编码图像 (例如 当我编译应用程序时,我得到以下错误

java.io.IOException: invalid constant type: 106 at 119
    at javassist.bytecode.ConstPool.readOne(ConstPool.java:1044)
    at javassist.bytecode.ConstPool.read(ConstPool.java:984)
    at javassist.bytecode.ConstPool.<init>(ConstPool.java:125)
    at javassist.bytecode.ClassFile.read(ClassFile.java:770)
    at javassist.bytecode.ClassFile.<init>(ClassFile.java:114)
    at javassist.CtClassType.<init>(CtClassType.java:95)
    at javassist.ClassPool.makeClass(ClassPool.java:728)
    at javassist.ClassPool.makeClass(ClassPool.java:706)
    at play.core.enhancers.PropertiesEnhancer.rewriteAccess(PropertiesEnhancer.java:145)
    at sbt.PlayCommands$$anonfun$PostCompile$1$$anonfun$apply$32.apply(PlayCommands.scala:327)
    at sbt.PlayCommands$$anonfun$PostCompile$1$$anonfun$apply$32.apply(PlayCommands.scala:327)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
    at sbt.PlayCommands$$anonfun$PostCompile$1.apply(PlayCommands.scala:327)
    at sbt.PlayCommands$$anonfun$PostCompile$1.apply(PlayCommands.scala:305)
....
java.io.IOException:无效的常量类型:119处的106
位于javassist.bytecode.ConstPool.readOne(ConstPool.java:1044)
位于javassist.bytecode.ConstPool.read(ConstPool.java:984)
位于javassist.bytecode.ConstPool.(ConstPool.java:125)
位于javassist.bytecode.ClassFile.read(ClassFile.java:770)
位于javassist.bytecode.ClassFile.(ClassFile.java:114)
位于javassist.CtClassType.(CtClassType.java:95)
位于javassist.ClassPool.makeClass(ClassPool.java:728)
位于javassist.ClassPool.makeClass(ClassPool.java:706)
正在运行的.core.enhancers.PropertiesEnhancer.rewriteAccess(PropertiesEnhancer.java:145)
在sbt.playcomands$$anonfun$PostCompile$1$$anonfun$apply$32.apply(playcomands.scala:327)
在sbt.playcomands$$anonfun$PostCompile$1$$anonfun$apply$32.apply(playcomands.scala:327)
位于scala.collection.mutable.resizeblearray$class.foreach(resizeblearray.scala:60)
位于scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
在sbt.playcomands$$anonfun$PostCompile$1.apply(playcomands.scala:327)
在sbt.playcomands$$anonfun$PostCompile$1.apply处(playcomands.scala:305)
....
但是,仅使用1个嵌入映像编译时未引发错误

所以我假设这与文件大小有关

是否有scala模板文件大小设置,如果有,如何增加?还是我找错了树


谢谢。

由于引擎将模板简化为方法,并且这些方法正在jvm上编译和运行,因此任何方法都有64 kiB的硬限制。模板可以略大于实践中的模板,但最大的单个方法可能不会超过该限制

如果您想查看模板引擎的输出,以便自己检查这些方法,那么在编译项目后,可以在
\target\scala-2.10\src\u managed\main\views\html\…

更多详情:


模板文件有多大?有一次我们遇到了一个问题,因为conf.routes增长到>64kiB,并作为一个方法处理(JVM对方法大小有一个硬限制,即64kiB)。我不是模板引擎方面的专家,但通过查看我的.template.scala文件,您可能遇到了相关问题。邮件列表中出现了一些相关问题,如果根本原因是模板文件大小,则其他用户已确认此行为:一定是这样。模板ate存在971 kb的问题。我通过在运行时嵌入图像来解决此问题。将模板分解为更小的部分也可能是一个好主意。这不仅有助于避免此问题,还可能使模板更易于理解和维护。