我正在尝试将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
我的静态文件夹中存在这些文件:
发生了什么事?
我的index.ftl文件。
答案 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罐子和钳子。