Explorar o código

fix: 修改了 API url 前缀匹配策略

tubinyan %!s(int64=5) %!d(string=hai) anos
pai
achega
923d187691

+ 1 - 1
README.md

@@ -42,7 +42,7 @@ public class PageInfo<T> {
 #### 文件说明
 
 SpringBoot 的配置文件可参考 /src/main/resouces/application.yml 以及 代码部分 /src/main/java/cn.seecoder.courselearning/config/*,请根据实际情况调整。
-> 目前所有 controller 暴露的 API 都需要添加 /api 前缀才能正常访问,可参考 application.yml 中 `server.servlet.context-path` 字段
+> 目前所有 controller 暴露的 API 都需要添加 /api 前缀才能正常访问,可参考 cn.seecoder.courselearning/config/WebResourceConfig 中 `configurePathMatch` 方法
 
 /src/main/resouces/static 目录下存储了部分课程的图片文件,建议可以将static目录内的图片文件全部拷贝至服务器上传文件的目录(在application.yml定义的)。
 

+ 8 - 0
src/main/java/cn/seecoder/courselearning/config/WebResourceConfig.java

@@ -2,6 +2,8 @@ package cn.seecoder.courselearning.config;
 
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
@@ -19,4 +21,10 @@ public class WebResourceConfig implements WebMvcConfigurer {
         // 在当前配置下,如果后端在本地运行,访问上传的文件资源,只需访问路径 http://localhost:8081/file/{file_name}
         registry.addResourceHandler("/file/**").addResourceLocations("file:"+fileUploadPath);
     }
+
+    @Override
+    public void configurePathMatch(PathMatchConfigurer configurer) {
+        // 为所有的RestController暴露的服务接口url 添加前缀/api
+        configurer.addPathPrefix("/api", c -> c.isAnnotationPresent(RestController.class));
+    }
 }

+ 3 - 5
src/main/resources/application.yml

@@ -1,7 +1,5 @@
 server:
   port: 8081
-  servlet:
-    context-path: /api #给所有的RequestMapping暴露的服务接口url添加前缀
 
 
 spring:
@@ -15,9 +13,9 @@ spring:
       max-file-size: 200MB #设置上传文件大小不得超过200MB
       max-request-size: 210MB #设置一次请求的数据量不得超过200MB
       enabled: true
-#  web:
-#    resources:
-#      static-locations: classpath:/static/
+  web:
+    resources:
+      static-locations: classpath:/static/
 
 # 设置日志输出
 logging: