스프링 부트 애플리케이션에서 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에서 무슨 일이 일어나고 있는지 확실하지 않습니다.
몇 가지 파헤 치기 후 문제는 이미지 폴더에 대해 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/**");
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다