ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 상대 경로를 사용할 때 CSS 배경 이미지가 표시되지 않음
    카테고리 없음 2020. 8. 18. 04:06

    질문

    JavaFX에서 프로젝트 작업 중입니다. 파일 구조는 다음과 같습니다 (CEP가 루트 임).

    CEP
      +img
         menu.jpg
      +src
         +css_files
            MainMenu.css

    내가하고 싶은 것은 MainMenu.css 파일의 img 디렉토리에서 배경 이미지를 설정하는 것입니다. 지금까지 다른 URL을 시도했지만 (아래 참조) 어느 것도 작동하지 않았습니다.

    -fx-background-image: url("./CEP/img/menu.jpg");
    -fx-background-image: url("../CEP/img/menu.jpg");
    -fx-background-image: url("CEP/img/menu.jpg");
    -fx-background-image: url("/CEP/img/menu.jpg");
    -fx-background-image: url("../../img/menu.jpg");
    -fx-background-image: url("/img/menu.jpg");
    -fx-background-image: url("./img/menu.jpg");
    -fx-background-image: url("../img/menu.jpg");
    -fx-background-image: url("img/menu.jpg");

    이렇게 전체 경로를 사용하면

    -fx-background-image: url("file:///C:/Users/Konrad/Desktop/java/CEP/img/menu.jpg");

    모든 것이 잘 작동하지만 내가 원하는 것은 아닙니다. 상대 경로를 사용하여 배경 이미지를로드하려면 어떻게해야합니까?

    편집하다.요청한대로 다음은 build폴더 구조입니다.

    build
       +classes
          +css_files
          +(other folders)
          menu.jpg
       +empty (empty)
       +generated-sources (has 1 empty subfolder)

    답변1

    img폴더와 그 내용은 소스 폴더 계층의 일부가 아니므로 결과적으로 애플리케이션의 일부로 배포되지 않습니다. 해당 폴더의 콘텐츠를 배포하도록 IDE를 구성하거나 단순히 img(및 해당 콘텐츠)를 src 로 이동할 수 있습니다.

    후자를 수행하면 img 가 배포 후 css_files 와 함께 class 경로의 루트에 있으므로 다음 중 하나가

    -fx-background-image: url("/img/menu.jpg");

    또는

    -fx-background-image: url("../img/menu.jpg");

    작동해야합니다.

    반면에 img 를 소스 폴더로 구성하면 img 의 내용이 class 경로의 루트에 배치됩니다. 이 경우 menu.jpg 가 class 경로의 루트에 있으므로 다음 중 하나가 필요합니다.

    -fx-background-image: url("/menu.jpg");

    또는

    -fx-background-image: url("../menu.jpg");


     

     

     

     

    출처 : https://stackoverflow.com/questions/48350501/css-background-image-does-not-show-when-relative-path-used

    댓글

Designed by Tistory.