기본 정적 자원 공급
SpringBoot에는 몇 가지 기본 정적 리소스 디렉토리가 있으며 구성 할 수 있습니다. 기본 구성 /**는 /static (또는 /public, /resources, /meta-inf /resources)에 맵핑되며 사용자 정의 구성 메소드는 다음과 같습니다.
spring.mvc.static-path-pattern =/** # 정적 자원에 사용되는 경로 패턴.
프론트 엔드가 기본 정적 자원에 액세스 해야하는 경우 다음 디렉토리 구조에주의를 기울이십시오.
Resources │ resources │ application.yml │ ├ ├ ─ static │ ├ ├ ├ ├ ├ ├ 담치 │ │ │용 인덱스.
Index.html에서 위의 정적 자원을 참조하는 방법?
다음 글쓰기 방법 :
<link rel = "Stylesheet"type = "text/css"href = "/css/index.css"rel = "external nofollow"> <script type = "text/javascript"src = "/js/index.js"> </script>
참고 : 기본 구성 /**지도 /정적 (또는 /public, /resources, /meta-inf /resources).
/css/index.css를 요청할 때 Spring MVC는 /static /directory에 있습니다.
/static/css/index.css로 구성된 경우 위에 구성된 여러 디렉토리 아래에 /static 디렉토리가 없으므로 리소스 파일을 찾을 수 없습니다!
따라서 정적 리소스 위치를 작성할 때는 매핑 된 디렉토리 이름 (예 :/static/,/public/,/resources/,/meta-inf/resources/)을 가져 오지 마십시오!
맞춤형 정적 리소스
온라인 정보에 따르면 사양은 구성 파일에 정의 될 수 있습니다. 이 방법을 사용하지 않았습니다. 확장 구성을 구현하여 사용했습니다.
PS : SpringBoot 1.X 버전에서 Spring MVC와 관련된 일부 구성은 WebMVCaUtoConfiguration을 상속하여 확장되지만 인터페이스 WebMVCConfigurer는 Spring MVC 관련 기능을 확장하기 위해 직접 구현되어 인터셉터를 구성하는 것과 같은 일반 리턴 프로세서를 구성하는 등의 구성 등을 구성합니다. 이 기사의 정적 리소스 경로 내부와 같은 기본 메소드를 다룹니다.
코드를 업로드하기 만하면됩니다.
@ConfigurationPublic 클래스 MyWebAppConfigurer는 WebMvcConfigurer {// event.share.image.dir =/data/share/image/@Value ( "$ {event.share.image.dir}") 개인 문자열 출력; @override public void addresourcehandlers (ResourceHandlerRegistry Registry) {registry.addresourceHandler ( "/share/image/**"). addResourcelOcations ( "파일 :"+outputDir); }}참고 : 위의 코드의 배경은 다른 장소에서 동적으로 찍은 이미지입니다. Sringboot Jar 패키지에 배치해서는 안됩니다. 따라서 위 구성을 통해 http : //host/share/image/a.jpg를 통해 /data/share/image/a.jpg의 이미지에 직접 액세스 할 수 있습니다. 정적 리소스 파일이 동적이지 않으면 리소스 디렉토리에도 다음과 같이 쓸 필요가 있습니다.
registry.addresourceHandler ( "/share/image/**"). addResourcelocations ( "classPath :"+outputDir); // 파일을 classPath로 변경합니다
SpringBoot 도구 클래스를 통해 정적 리소스에 액세스합니다
매우 간단하게 코드는 다음과 같습니다.
개인 정적 최종 문자열 background_image = "share/backgring.jpg"; 파일 = new ClassPathResource (background_image) .getFile (); inputStream is = new ClassPathResource (background_image) .getInputStream ();
그것을 쓸 수있는 또 다른 방법이 있다는 것이 밝혀졌습니다.
개인 정적 최종 문자열 background_image = "classpath : share/background.jpg"; 파일 파일 = resourceutils.getFile (background_image);
그러나 버전 2.X에서 다음은 나타날 수 있지만 예외
java.io.filenotFoundException : 클래스 경로 리소스 [share/background.jpg]는 파일 시스템에 존재하지 않기 때문에 절대 파일 경로로 해결할 수 없습니다 : jar : jar : /home/ubuntu/wxcs/calendar-api-1.0.0.0.jar!/boot-inf/classs!/share/background.jpg
나는 그것을 쓰는 첫 번째 방법을 추천합니다.