springboot项目部署在tomcat下请求的资源[/login]不可用
时间: 2024-10-20 21:07:10 浏览: 0
Spring Boot 应用默认情况下是通过内置的嵌入式 Tomcat 或 Jetty 来运行的,当你直接部署到外部 Tomcat 服务器上时,可能会遇到资源路径的问题。当应用访问的 `/login` 资源在 Spring Boot 的上下文中无法找到时,这通常意味着:
1. **配置映射**:你需要在 Spring Boot 中的 `application.properties` 或 `application.yml` 文件中配置一个特定的 URL 映射规则,将 `/login` 映射到实际的前端目录或者 REST API 接口。
```yaml
server.servlet.context-path: /myapp # 更改成 '/myapp/login'
```
然后在 Spring Boot 启动类上添加 `@WebMvcConfigurer` 注解,并覆盖 `addResourceHandlers` 方法:
```java
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/login/**")
.addResourceLocations("classpath:/static/", "file:/path/to/static/resources/");
}
}
```
2. **静态资源处理**:如果 `/login` 是一个静态文件(如 HTML、CSS、JS),需要确保 Tomcat 正确地加载了这个目录,通常是 `src/main/resources/static` 或 `src/main/webapp`。
3. **检查URL路径匹配**:确认 Tomcat 的访问日志或者应用程序的日志中有没有关于该请求的信息,看是否因为路径问题导致的404错误。
阅读全文