[SPRING] thymeleaf spring framework (maven 사용)의 로컬 디렉토리에서 이미지 삽입
SPRINGthymeleaf spring framework (maven 사용)의 로컬 디렉토리에서 이미지 삽입
이 링크를 사용하여 프로젝트를 개발했습니다 : https://spring.io/guides/gs/serving-web-content/ 위 프로젝트를 개발하기 위해 maven을 사용했습니다.
이 아래에 두 개의 html 파일이 있습니다. abc.html 및 xyz.html. html 페이지에 이미지를 삽입하려면 다음과 같이 url을 사용했습니다.
<img src="https://example.com/pic_mountain.jpg" alt="Mountain View" style="width:304px;height:228px">
하지만 대신 내 서버에있는 이미지 파일을 사용하고 싶습니다. 파일을 html 파일과 같은 디렉토리에 배치하려고했지만 작동하지 않습니다. 나는 완전한 길을 주려고했지만 아무 쓸모가 없었습니다. 이것은 우분투 OS입니다. 제발 도와주세요. 기본 경로를 구성 할 수있는 곳이 있습니까? 기본적으로 로컬 폴더에서 이미지를 가져 오는 방법은 기본적으로 제공됩니다.
해결법
-
==============================
1.Thymeleaf의 표준 URL 구문 문서, 특히 문맥 관련 및 서버 상대 URL 패턴에 대해 살펴 보시기 바랍니다.
Thymeleaf의 표준 URL 구문 문서, 특히 문맥 관련 및 서버 상대 URL 패턴에 대해 살펴 보시기 바랍니다.
문맥 관련 URL :
JB Nizet이 웹 앱 프로젝트에서 개인적으로 thymeleaf를 사용함에 따라 다음과 같이 작동합니다.
<img th:src="@{/images/test.png}"/>
test.png는 webapp 폴더 내부의 프로젝트 루트 아래에 있어야합니다. 대략 훑어 보는 것,
Myapp->webapp->images->test.png
예 :
<img th:src="@{/resources/images/Picture.png}" />
다음 형식으로 출력 :
<img src="/resources/image/Picture.png" />
브라우저에서 http : // localhost : 8080 / myapp / resources / images / Picture.png를 클릭하면 위의 구문이 작동하도록 이미지에 액세스 할 수 있어야합니다. 그리고 당신의 resources 폴더는 아마 당신의 어플리케이션의 webapp 폴더 밑에있을 것입니다.
서버 상대 URL :
통사론:
<img th:src="@{~/billing-app/images/Invoice.png}">
다음 형식으로 출력 :
<a href="/billing-app/showDetails.htm">
위의 이미지는 컨텍스트와 다른 응용 프로그램에서로드되며 billing-app 응용 프로그램이 서버에있는 경우로드됩니다.
출처 : Thymeleaf 설명서
-
==============================
2.HTTP 작동 방식을 이해해야합니다. 브라우저가 URL에 페이지를로드 할 때
HTTP 작동 방식을 이해해야합니다. 브라우저가 URL에 페이지를로드 할 때
http://some.host/myWebApp/foo/bar.html
HTML 페이지에는
<img src="images/test.png"/>
브라우저는 이미지를로드하기 위해 서버에 두 번째 HTTP 요청을 보냅니다. 이미지의 URL은 상대 경로이므로 http://some.host/myWebApp/foo/images/test.png가됩니다. 절대 경로는 페이지의 현재 "디렉토리"에서 구성되며 이미지의 상대 경로와 연결됩니다. 서버 측 JSP 또는 thymeleaf 템플릿의 경로는 여기서는 전혀 관련이 없습니다. 중요한 것은 브라우저의 주소 표시 줄에 표시된대로 페이지의 URL입니다. 이 URL은 일반적인 Spring MVC 애플리케이션에서 초기 요청이 전송 된 컨트롤러의 URL이다.
이미지 경로가 절대 경로 인 경우 :
<img src="/myWebApp/images/test.png"/>
브라우저는 URL http://some.host/myWebApp/images/test.png에 두 번째 요청을 보냅니다. 브라우저는 웹 서버의 루트에서 시작하여 절대 경로를 연결합니다.
이미지를 참조 할 수 있으려면 페이지의 URL이 정확해야하므로 절대 경로가 더 선호되고 사용하기 쉽습니다.
위의 예에서 / myWebApp는 응용 프로그램의 컨텍스트 경로이며 변경 될 수 있기 때문에 일반적으로 경로에서 하드 코드하지 않으려합니다. 고맙게도, thymeleaf 문서에 따르면, thymeleaf는 그것을 이해하고 context-relative 경로 구문을 제공하므로 /images/test.png와 같은 경로를 /myWebApp/images/test.png로 변환합니다. 그래서 당신의 이미지는 다음과 같이 보일 것입니다.
<img th:src="@{/images/test.png}"/>
(나는 thymeleaf를 한번도 사용하지 못했지만, 그것이 문서에서 추론 한 것입니다.)
그리고 test.png 이미지는 webapp의 루트 아래에있는 폴더 이미지에 있어야합니다.
-
==============================
3.인터넷에 연결하십시오 :
인터넷에 연결하십시오 :
String src = "https://example.com/image.jpg";
HTML :
from https://stackoverflow.com/questions/29460618/inserting-an-image-from-local-directory-in-thymeleaf-spring-framework-with-mave by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 하나의 web.xml에 다중 저지 서블릿 (0) | 2019.04.05 |
---|---|
[SPRING] 스프링 데이터 jpa를 사용하여 jsonb 열을 쿼리하려면 어떻게합니까? (0) | 2019.04.05 |
[SPRING] thread 안전에 관한 혼란 - SimpleDateFormat의 예 (0) | 2019.04.05 |
[SPRING] 봄 데이터 mongodb 감사 작동하지 않습니다 .. (Java 구성) (0) | 2019.04.05 |
[SPRING] 스프링 프레임 워크에서 메소드가 작동하지 않습니다. [duplicate] (0) | 2019.04.05 |