静态资源未部署到 tomcat-docbase 文件夹 - (IntelliJ 2018 / Spring Boot 2 / Embedded Tomcat)

Posted

技术标签:

【中文标题】静态资源未部署到 tomcat-docbase 文件夹 - (IntelliJ 2018 / Spring Boot 2 / Embedded Tomcat)【英文标题】:static resources not deploying to tomcat-docbase folder - (IntelliJ 2018 / Spring Boot 2 / Embedded Tomcat) 【发布时间】:2021-01-16 13:19:08 【问题描述】:

我一直在将旧的 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 运行设置?

谢谢。

【问题讨论】:

【参考方案1】:

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

在 IntelliJ 中:

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

【讨论】:

以上是关于静态资源未部署到 tomcat-docbase 文件夹 - (IntelliJ 2018 / Spring Boot 2 / Embedded Tomcat)的主要内容,如果未能解决你的问题,请参考以下文章

Nginx系列之静态服务

解决.jsp及静态资源文件访问404的问题

github如何托管页面部署静态资源部署vue静态资源的步骤和遇到的问题

github如何托管页面部署静态资源部署vue静态资源的步骤和遇到的问题

spring boot 部署war 到tomcat上面静态资源无法访问

nginx+tomcat 动静态资源怎么部署