Intellij 中的 Spring Boot 不会加载图像

Posted

技术标签:

【中文标题】Intellij 中的 Spring Boot 不会加载图像【英文标题】:Spring Boot in Intellij won't load image 【发布时间】:2022-01-15 13:47:25 【问题描述】:

我刚刚开始学习 Spring 阅读“Spring In Action”,我无法将图像加载到端口 8080(tomcat 启动的地方)以外的任何地方。这通常没问题,但我必须不断重启程序才能加载对我的网页所做的任何更改。

Intellij 尝试在端口 63342 上运行我的 Web 程序,但没有加载图像,只有文本。我相信这是 Thymeleaf 的一个问题。我尝试将 tomcat 指向端口 63342,但它不会加载(端口正在使用中?)

我希望它可以让我在保存时重新加载功能工作,特别是能够使用 intellij 中的快捷方式来启动网页。

有什么建议吗?

【问题讨论】:

我认为这个答案对你有帮助***.com/questions/70029955/… 【参考方案1】:

据我了解,基本上问题是您试图直接从 IDEA 打开您的.html 模板。这意味着您没有使用thymeleaf engine 来呈现它 - 您只是打开了模板本身,而不是生成的页面。如果您使用浏览器的开发工具打开此页面的源代码,您将看到您的所有表达式都未处理,这导致它试图在错误的端口上获取资源(例如 63342 而不是 8080 您的应用程序所在的位置正在运行并准备好为资源提供服务)。

因此,您不能像这样编辑您的模板。但是 Thymeleaf 确实可以选择这样做。如果您直接从 IDE 运行 Spring Boot application(例如 Intellij IDEA Ultimate 中的配置文件),您可以将以下内容添加到您的 application.properties

spring.thymeleaf.cache=false

这会告诉你的 Spring 模板解析器你不想缓存你的 .html 模板,它每次都会从磁盘加载文件,所以如果你修改你的模板然后点击 IDE 的 build 按钮它应该重新-打包您的模板,当您在浏览器中刷新页面时,它将加载(并处理!)已编辑的模板。

注意!仅将其用于开发版本,将值设置为 true 用于生产环境,以防止不必要的重新读取。

请参阅Spring Boot Docs on Hot Swapping 了解更多信息。

【讨论】:

以上是关于Intellij 中的 Spring Boot 不会加载图像的主要内容,如果未能解决你的问题,请参考以下文章

Intellij 中的 Spring Boot 不会加载图像

IntelliJ中的Spring boot + thymeleaf:无法解析变量

使用Intellij中的Spring Initializr来快速构建Spring Boot工程

Spring Cloud Spring Boot mybatis分布式微服务云架构使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程

Spring Cloud Spring Boot mybatis分布式微服务云架构使用Intellij中的Spring Initializr来快速构建Spring Boot/Cloud工程

Springboot:使用Intellij中的Spring Initializr来快速构建Spring Boot工程