如何在Spring Boot嵌入式Tomcat中设置上下文根路径?

4
我想将自己的应用程序名称作为前缀添加。例如:http://localhost:8084/MyApp/some-url。但当我点击某个链接(href)时,它会重定向到http://localhost:8084/some-url。 同时,我已经在属性文件中添加了server.servlet.context-path=/MyApp。 注意: 我正在使用Spring Boot 2.5.4v和嵌入式Tomcat 9.0.53v。

我目前正在测试相同的版本,并且使用 server.servlet.context-path=/MyApp 附加后可以正常工作。请参见 https://dev59.com/3GIj5IYBdhLWcg3wTTcG - İsmail Y.
@İsmailY 在我的情况下不起作用。 - Waseem
请与我们分享您的文件(例如application.properties)的案例。 - İsmail Y.
应用程序属性: server.servlet.context-path=/MyApp控制器: `@RequestMapping("/some-url") public String somePage(Model model) { model.addAttribute("message", "Hello world!"); return "some-page"; }` - Waseem
1个回答

1

Spring Boot: 2.7.9和其内嵌的Tomcat版本为9.0.0以上。

我注意到server.servlet.contextPath=/my-path不起作用,它会选择Gradle构建时可执行jar文件的名称。也就是说,在构建时jar文件的名称(它将在openjdk:11-jre-slim容器中部署到AWS Fargate)。

这个对我们有效:

@Bean
public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> webServerFactoryCustomizer() {
    return factory -> factory.setContextPath("my-path");
}

您可以在任何配置类中定义此bean。 我知道这个也适用于嵌入式Tomcat,但更像是部署时的配置:

java -jar -Dserver.servlet.context-path=/my-path your-jar-file-name.jar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接