Spring Boot嵌入式Tomcat能否访问定义的spring.tomcat.basedir的webapps文件夹
Posted
技术标签:
【中文标题】Spring Boot嵌入式Tomcat能否访问定义的spring.tomcat.basedir的webapps文件夹【英文标题】:Can Spring Boot embedded Tomcat access webapps folder of defined spring.tomcat.basedir 【发布时间】:2019-07-12 21:03:28 【问题描述】:计划使用嵌入式 Tomcat 部署 Spring Boot JAR 应用程序。正如application.properties
所见,我已经定义了一些Tomcat 参数。我的问题是我可以访问基本目录的 webapps 文件夹以使用 Angular 为前端元素提供服务,就好像我将应用程序部署为 WAR 一样?访问日志按预期工作。
应用程序.properties
server.tomcat.basedir=c:/servers/instances/app_dep/
server.tomcat.uri-encoding=UTF-8
server.tomcat.accesslog.directory=c:/servers/instances/app_dep/logs
server.tomcat.accesslog.enabled=true
服务器环境
Windows Server
Apache 2.4
Tomcat 9
webapps 路径 - c:/servers/instances/app_dep/webapps/app_name
我已经为 Apache 2.4 配置了 mod_jk
,因此我可以使用 IP_ADDRESS/app_name
访问端点
【问题讨论】:
【参考方案1】:不,Spring Boot 中配置的嵌入式 Tomcat 不会监视 webapps
文件夹,也不会部署复制到那里的 war 文件。
如果您想从 Spring Boot 应用程序中提供静态内容,那么一种选择是将该内容打包到您的 jar 文件中。默认情况下,src/main/resources/static
中的任何内容都将打包到 jar 文件中的某个位置,以便通过 HTTP 访问。例如,一个名为src/main/resources/static/css/style.css
的文件将被打包在BOOT-INF/classes/static/css/style.css
中,并且可以通过/css/style.css
上的HTTP 访问。
【讨论】:
以上是关于Spring Boot嵌入式Tomcat能否访问定义的spring.tomcat.basedir的webapps文件夹的主要内容,如果未能解决你的问题,请参考以下文章
你如何告诉 Spring Boot 将嵌入式 Tomcat 的访问日志发送到标准输出?
带有嵌入式tomcat的Spring Boot应用程序,将访问日志发送到syslog
带有嵌入式 Tomcat 的 Spring Boot 忽略了方法角色
如何在 Spring Boot 应用程序中将用户添加到嵌入式 tomcat?