Spring boot 패키지 jar 후 정적 자원 접근
배경: Spring boot 를 jar 패키지 로 포장 한 후 정적 자원 에 접근 하지 못 합 니 다.
우선 spring boot 는 기본 폴 더 설정 이 있 고 정적 자원 을 스스로 식별 할 수 있 습 니 다. 다음은 spring boot 의 기본 정적 폴 더 지정 입 니 다.
org.springframework.boot.autoconfigure.web.ResourceProperties
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {"classpath:/META-INF/resources/",
"classpath:/resources/","classpath:/static/", "classpath:/public/" };
pom. xml 는 spring - boot - maven - plugin 의 기본 포장 방식 을 사용 합 니 다. "classpath: / static /" 는 이미 되 었 지만 안 됩 니 다.
구체 적 인 심리 과정 은 쓰 지 않 고 내 환경 에서 해결 하 는 방법 을 직접 말 하 다.
WebMvcConfigurer 설정 수정, 덮어 쓰기 addResource Handlers
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
...
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
// , !
// ( ,controller *.* ), (file , )
registry.addResourceHandler("**/*.*").addResourceLocations("classpath:/resources/", "classpath:/static/",
"classpath:/public/", "file:./static-extend/");
}
}
차단 기 는 정적 자원 을 제거 하 는 데 주의해 야 합 니 다. 상기 방식 은 jar 패키지 도 가능 하고 IDE 내 에서 도 실행 할 수 있 습 니 다. 반대로 'classpath: / static /' 만 있 으 면 IDE 가 무릎 을 꿇 습 니 다.
POM. XML 은 기본 값 을 사용 하면 됩 니 다. (즉, static, templates 폴 더 는 기본적으로 BOOT - INF / class 아래 에 두 면 됩 니 다)
${project.artifactId}
org.springframework.boot
spring-boot-maven-plugin
참고 로 thymeleaf 가 구 덩이 를 밟 은 곳.
뒤에 반 사 를 꼭 붙 여야 돼!하 나 는 거꾸로!!하 나 는 거꾸로!!그리고 코드 안에 return 이 있 을 때 앞 에 서 는 반드시 역 사 를 제거 해 야 합 니 다!거꾸로 빼!!거꾸로 빼!!!
spring:
thymeleaf:
prefix: classpath:/templates/
@RequestMapping("/demo")
@Controller
public class DemoController {
@RequestMapping("/index")
@ResponseBody
public Object index() {
return new ResultModel();
}
@RequestMapping("/error")
public ModelAndView error(){
ModelAndView modelAndView = new ModelAndView("collect/error");
modelAndView.addObject("error", " ");
return modelAndView;
}
@RequestMapping("/finish")
public String finish() {
return "collect/finish";
}
}
위 설정 을 완료 하면 jar, IDE 가 완벽 하 게 실 행 될 수 있 습 니 다. 또한 jar 패키지 의 경로 에서 static - extend 폴 더 에서 정적 자원 을 편리 하 게 저장 할 수 있 습 니 다. 안전성 은 여러분 의 요구 에 달 려 있 습 니 다. 이것 은 최종 적 으로 spring boot 에 의 해 작 동 됩 니 다.
참고 문헌
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[MeU] Hashtag 기능 개발➡️ 기존 Tag 테이블에 존재하지 않는 해시태그라면 Tag , tagPostMapping 테이블에 모두 추가 ➡️ 기존에 존재하는 해시태그라면, tagPostMapping 테이블에만 추가 이후에 개발할 태그 기반 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.