用钳子不起作用的弹簧靴

时间:2018-01-12 13:20:31

标签: spring-boot jawr

我正在尝试将Spring引导与jawr集成,但是得到以下错误:

  

n.j.w.r.b.r.AbstractBundleLinkRenderer:找不到路径的包:   /bundles/dependency.css n.j.w.r.b.r.AbstractBundleLinkRenderer:否   找到路径的包:/bundles/app.css   n.j.w.r.b.r.AbstractBundleLinkRenderer:找不到路径的包:   /bundles/ie-support.js

我的静态文件夹中存在这些文件:

Folder structure of my project

发生了什么事?

我的index.ftl文件。

enter image description here

1 个答案:

答案 0 :(得分:1)

您是否检查过您的临时目录中是否生成了捆绑包。在windows中的示例中,您可以找到临时目录:

C:\Users\<username>\AppData\Local\Temp\tomcat.<random numbers>.8080\work\Tomcat\localhost\<context path>\jawrTmp

我发现因为它是你的建筑物而不是带有webapp目录的旧mvc war文件,你需要使用类路径生成器:

https://j-a-w-r.github.io/docs/generators.html

  

前缀是您在实现Generator时将指定的键,并且路径是一个字符串,根据您的生成器的功能,它将具有不同的含义。此外,您在括号和括号中都有参数(两者都是可选的),这有助于参数化映射。没有参数的简单映射示例如下:

jawr.js.bundle.one.mappings=jar:net/jawr/cpscript.js

要小心,因为我个人并没有注意到这个金块:

  

与普通映射不同,这种引用资源的方式还不允许使用通配符(即:jar:/ com / mycompany / myapp / **不起作用)。

由于它不会递归遍历目录,我必须手动将所有这些目录添加到jawr.properties。

一些其他信息

在此之后,我注意到.sorting文件将被附加到包的内容中(出于某些有趣的原因,我无法弄清楚为什么某些映射会因{{1}而翻倍这是MinJS处理器完全失去理智的。

所以我个人无法找到解决方法,所以我构建了一个自定义的PostProcessor和PreProcessor。 PreProcessor完成每个映射并将/jar:<mapping>值修复为/jar:<mapping>,并使用jar:<mapping>文件的内容填充静态列表。

PostProcessor比从包的内容中删除对该静态列表中包含的值的任何引用(这解决了该问题)。我仍然遇到问题,我可以使用.sorting的前缀来查看捆绑包,但我的应用程序仍然没有找到context-path/jsb/bundles,所以不确定我自己是否有问题。

简而言之,因为你有一个jar,你必须在classpath上加载内容,而不是在servlet上加载(默认情况下它会搜索我相信。)

希望这会有所帮助,如果你设法让它全部运转,请在这里分享,因为有很少的文件有spring-boot罐子和钳子。