我需要能够从 Spring Boot 模板生成 PDF。为此,我使用 PDF 渲染库 (FlyingSaucer),它基本上可以正确完成工作。然而,存在一个问题:当页面上有“href”标签时,当 PDF 渲染器尝试渲染 HTML 时,它们无法正确解析。例如,如果我有以下代码:
<link rel="stylesheet" type="text/css" th:href="@{/css/index.css}" />
它在浏览器中正确解析,但是当我尝试使用以下代码将其作为 ClassPath 资源检索时:
new ClassPathResource("/css/index").getInputStream()
Spring Boot 说该文件不存在。这对我来说很奇怪,因为我认为 Spring Boot 将所有静态内容添加到类路径中。
下面是我的项目的文件夹结构,(我认为)遵循正确的 Spring Boot 约定:
我能否获取某些 Spring 资源的句柄(通过 Autowiring 、应用程序上下文等)来解析这些 URL,就像浏览器请求它们时一样?我可能可以通过将“resources/static/”硬编码到 url 字符串的开头来解决这个问题,但我更喜欢更动态的解决方案。
最佳答案
使用这个:
new ClassPathResource("static/css/index.css").getInputStream();
关于java - 如何在 Spring Boot 中获取静态资源(js、css)作为 ClassPathResource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41605684/