具有静态内容的 Spring Boot 项目在运行 jar 时生成 404

2024-03-31

最近的博客文章(https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot https://spring.io/blog/2013/12/19/serving-static-web-content-with-spring-boot)Spring 关于 Spring Boot 项目中静态 Web 内容的使用表明可以使用多个资源目录:

  • /META-INF/资源/
  • /资源/
  • /static/
  • /public/

这要归功于 WebMvcAutoConfiguration 类,它自动将这些目录添加到类路径中。这一切看起来都很好,并且在使用时似乎可以工作spring-boot-maven-插件 弹簧启动:运行


事实证明,虽然 Spring Boot 很聪明地将各种资源目录添加到类路径中,但 Maven 却不然,这取决于您来处理这部分。默认情况下,仅src/main/resources将包含在您的 JAR 中。如果您创建一个名为/static在你的项目的根目录中(如博客文章所暗示的)那么它在使用时会正常工作弹簧启动:运行Maven 目标,但一旦创建 JAR 就不再是目标。

最简单的解决方案是创建您的/static里面的文件夹/src/main/resources然后 Maven 会将其包含在 JAR 中。或者,您可以向 Maven 项目添加其他资源位置:

<resources>
    <resource>
        <directory>src/main/resources</directory>
    </resource>
    <resource>
        <directory>static</directory>
        <targetPath>static</targetPath>
    </resource>
</resources>

我希望这对某人有用,当您退后一步看看 Maven 的工作原理时,这是显而易见的,但它可能会困扰一些使用 Spring Boot 的人,因为它被设计为几乎无需配置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

具有静态内容的 Spring Boot 项目在运行 jar 时生成 404 的相关文章

随机推荐