首页 > 解决方案 > 静态资源未部署到 tomcat-docbase 文件夹 - (IntelliJ 2018 / Spring Boot 2 / Embedded Tomcat)

问题描述

我一直在将旧的 Spring 4.x 应用程序转换为在 Spring Boot 2.x 上运行。此应用程序包含存储在 WAR 的“/WEB-INF/tiles”目录中的 JSP。

当我在本地(使用 IntelliJ 2018.3)运行应用程序时,服务器启动,但是当我尝试点击本地登录页面(“/devlogin”)时,我得到一个 404 未找到。在我的调试堆栈中,我设法找到了这个打印输出:

DEBUG o.a.j.s.JspServlet - JspEngine --> /WEB-INF/tiles/devlogin.jsp +[] #[]
DEBUG o.a.j.s.JspServlet -          ServletPath: /WEB-INF/tiles/devlogin.jsp +[] #[]
DEBUG o.a.j.s.JspServlet -             PathInfo: null +[] #[]
DEBUG o.a.j.s.JspServlet -             RealPath: C:\Users\LBlack\AppData\Local\Temp\7\tomcat-docbase.8622225261320704348.8080\WEB-INF\tiles\devlogin.jsp +[] #[]

当我转到“RealPath”时,我发现\tomcat-docbase.#\文件夹是空的,所以我手动复制粘贴到我的/WEB-INF/文件夹中并重新加载浏览器,它就可以工作了!

现在我的问题是,如何让 IntelliJ 或 Tomcat 自动将 WEB-INF 部署到该位置?除了 Spring Boot 配置设置中允许的内容之外,我没有使用任何直接配置的 tomcat。有什么我可以添加到的application.yaml,或者这是一个 IntelliJ 运行设置?

谢谢你。

标签: spring-boottomcatintellij-ideaembedded-tomcat-7

解决方案


随着这些事情的进行,我在放弃(第一次)并发布问题后大约半小时找到了答案......

在 IntelliJ 中:

  1. Run > Edit Configurations
  2. 设置环境 > 工作目录:到$MODULE_WORKING_DIR$
  3. 重启服务器。

在此处输入图像描述


推荐阅读