Sparkjava 이미지 엑박 오류 대응 방안

2639 단어 SparkjavaSparkjava

화려한 엑박이 나를 감싼다.

Sparkjava로 띄운 로컬 서버에 html로 열심히 이미지를 띄워보려고 했으나 엑박만이 나를 반겨주었다. 결론은 메인에서 아래 메서드를 호출시켜야 static file인 이미지가 정상적으로 로딩된다.

staticFiles.location(path);

이 때 이미지가 있는 path를 넣어주기만 하면 잘 되면 좋으련만... 예상치 못한 동작을 한다.

실험을 위한 테스트 경로들

  1. 응답하는 html과 동일 폴더에 이미지 파일 위치
  2. html과 다른 폴더에 이미지 파일 위치
  3. 2번 폴더의 내부 폴더에 이미지 파일 위치

path에 올바르지 않은 경로를 적을 경우

당연하게도 모두 엑박이 맞아주신다. 예상 가능한 결과라 감흥은 없다.

path에 이미지가 위치한 폴더의 경로를 적을 경우

예를 들어 다음과 같다면

staticFiles.location("/testFolder");

testFolder내에 위치한 이미지들이 정상 출력될 것이라 기대되지 않는가?
그러나 이 경우 2, 3번이 모두 실패하고 html과 동일 폴더에 이미지가 위치한 경우인 1번만 정상적으로 로딩된다.

  1. 응답하는 html과 동일 폴더에 이미지 파일 위치 -> 성공
  2. html과 다른 폴더에 이미지 파일 위치 -> 실패
  3. 2번 폴더의 내부 폴더에 이미지 파일 위치 -> 실패

path에 빈 경로(기본 경로)만을 적을 경우

예를 들어 다음과 같다면

staticFiles.location("");

1, 2, 3번 모든 경우에서 성공하겠다고 예상되는가?
그러나 이 경우 1번만 실패하고 2, 3번이 모두 성공한다.

  1. 응답하는 html과 동일 폴더에 이미지 파일 위치 -> 실패
  2. html과 다른 폴더에 이미지 파일 위치 -> 성공
  3. 2번 폴더의 내부 폴더에 이미지 파일 위치 -> 성공

결론

사실 잘 모르겠다. 제이슨에게 살짝 질문을 드렸지만

어차피 나중에 쓸 거 아니니(이번 레벨 1체스 미션에서만 쓰니) 별로 중요하지 않아요.
빌드 된 이후 상대 경로 설정이 달라져서 그런 걸 거예요.

제이슨 - 주말 오후 게더

staticFiles 내부 코드까지 봤지만 문제될 상황을 모르겠어서 가볍게 넘어가려고 한다.
응~ sparkjava 안 쓰면 그만이야~

그래도 써야하는 불쌍한 사람들을 위한 결론
1. staticFiles.location(""); 넣고 이미지 담긴 폴더 경로 넣기
2. staticFiles.location(존재하는 폴더 경로); 넣고 html이랑 같은 폴더에 이미지 넣기

참조

sparkjava 공식 문서

좋은 웹페이지 즐겨찾기