【问题标题】:Spring boot with jawr not working带颚板的弹簧靴不工作
【发布时间】:2018-01-12 13:20:30
【问题描述】:

我正在尝试将 Spring boot 与 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 文件。

【问题讨论】:

  • 你使用的是 Spring Boot 2.0 吗?
  • @Darkice 不,我用的是 spring boot 1.x

标签: spring-boot jawr


【解决方案1】:

您是否检查过您的捆绑包是否在您的临时目录中生成。在 windows 中的示例,您通常会在以下位置找到临时目录:

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

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

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

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

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

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

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

由于它不会递归地遍历目录,我不得不手动将它们全部添加到 jawr.properties。

一些附加信息

在此之后,我注意到 .sorting 文件将附加到捆绑包的内容中(出于某种有趣的原因,我无法弄清楚为什么某些映射会与 /jar:&lt;mapping&gt; 重叠;其中MinJS 处理器完全失去理智。

所以我个人找不到解决方法,所以我构建了一个自定义的 PostProcessor 和 PreProcessor。预处理器遍历每个映射并将/jar:&lt;mapping&gt; 值固定为jar:&lt;mapping&gt;,并使用.sorting 文件的内容填充静态列表。

PostProcessor 从捆绑的内容中删除对该静态列表中包含的值的任何引用(很好地解决了该问题)。仍然有一个问题,我可以 http 到带有前缀 context-path/jsb/bundles 的包,但我的应用程序仍然没有收到 /bundles 所以不确定我自己是否有问题。

简而言之,因为你有一个 jar,你必须通过类路径而不是 servlet 加载内容(我相信它默认搜索它。)

希望这会有所帮助,如果您确实设法使其全部正常运行,请在此处分享,因为关于 spring-boot jars 和 jawr 的文档很少。

【讨论】:

  • 只是想我会在这里添加这个,我将以下内容添加到我的应用程序中,现在可以加载包。 @EnableAutoConfiguration(exclude = {JawrAutoConfiguration.class}) 我正在尝试将旧应用程序迁移到 Spring Boot jar 中,我认为有一些本地配置导致了我的问题。所以现在正在调查,但我想我会分享。
  • 我自己解决了问题;我必须明确说明 javascript 文件。 jawr 中的 JS 类路径实现不支持目录或 .sorting(实际上,它通过包含目录信息和 .sorting 定义开始破坏您的包)。所以我浏览了我自己的所有文件,并试图模仿 .sorting 文件会做的事情,因为我不需要把它做得很漂亮,因为我们将在不久的将来去掉 jawr 我只需要它在短期内运行学期。希望这会有所帮助。
  • 非常感谢@chris ??
猜你喜欢
  • 2018-02-14
  • 1970-01-01
  • 2014-06-27
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 2021-02-16
  • 2018-11-22
相关资源
最近更新 更多