카테고리 없음

thymeleaf로 스프링 부트에서 이미지를로드하는 방법은 무엇입니까?

기록만이살길 2021. 2. 26. 08:20
반응형

thymeleaf로 스프링 부트에서 이미지를로드하는 방법은 무엇입니까?

1. 질문(문제점):

스프링 부트 애플리케이션에서 html 파일로 이미지를 간단히 표시하고 싶습니다.

그러나 어떤 이유로 특정 응용 프로그램에서 작동하도록 할 수 없습니다.

다른 응용 프로그램에서 똑같은 방식으로 작동하도록 할 수 있기 때문에 "하나의 특정 응용 프로그램"이라고 말합니다.

이것이 방법입니다.

폴더에 tempLogo.jpg를 배치했습니다 /src/main/resources/static/images.

src / main / resources / templates / home.html에서 :

<img src="images/tempLogo.jpg"></br>
<img src="/images/tempLogo.jpg"></br>
<img th:src="@{/images/tempLogo.jpg}"></br>
<img th:src="@{images/tempLogo.jpg}"></br>

이 중 어느 것도 app1에서 작동하지 않았습니다. 이 모든 것들은 동일한 코드와 경로로 app2에서 작동했습니다.

흥미롭게도 app1에서 다음과 같이 / static 폴더의 .css 및 .js 파일에 성공적으로 액세스 할 수 있습니다.

<link rel="stylesheet" type="text/css" href="/css/styles.css"/>
<script src="/scripts/scripts.js"></script>

다음은 다음과 같습니다.

/src/main/resources/static/css

/src/main/resources/static/scripts

내가 말했듯이 정확한 경로와 코드가 작동하는 app2에서 무슨 일이 일어나고 있는지 확실하지 않습니다.

2. 해결방안:

몇 가지 파헤 치기 후 문제는 이미지 폴더에 대해 Spring 보안이 활성화되지 않았다는 것입니다. 그래서 web.ignoring().antMatchers("/images/**");WebSecurityConfigurerAdapter를 확장하는 클래스의 구성 메소드에 추가 되었으며 작동했습니다.

@Override
    public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("/css/**");      
        web.ignoring().antMatchers("/scripts/**");
        web.ignoring().antMatchers("/images/**");
    }
65797794
반응형