1) public 폴더
프로젝트 내부에 루트에 public 폴더 내부에 cat.jpg가 있다고 하면
아래와 같이 import를 할 수 있다.
💚 특징
blur 효과 적용 시 blurDataURL을 직접 입력해야 한다.Base64 방식으로 인코딩- Plaiceholder 라이브러리 등을 활용 )export default function MyComponent() {
return (
<Image
src="/cat.jpg" // 경로를 문자열로 직접 지정
alt="Cat"
width={500}
height={300}
/>
);
}
2) src/app 내부
src 폴더 내부의 이미지 경로를 import 해서 사용
import catImage from './cat.png';
export default function Example() {
return <Image src={catImage} alt="Cat" />;
}
💚 특징
❌ public 폴더 내부에 있는 이미지 파일을 import하는 것은 next에서 권장하지 않는다.
(배포(build 후) 환경에서는 문제 생길 가능성 존재)
import catImage from "../../public/cat.jpg"; // ❌ 지양
export default function MyComponent() {
return <Image src={catImage} alt="Cat" />;
}
<div> ... </div> 영역에 background-image를 적용할 수 있다.
// module css 파일
.banner {
font-size : 90px;
width: 300px;
height: 500px;
background-image: url('/background.jpg'); // public/background.jpg 파일
background-size: 100% auto;
background-repeat: no-repeat;
background-position: center;
}
import style from "./Home.module.css";
...
<div className={style.banner}></div>
이런식으로 적용하면, Image 태그에 사용할 수 있는 object-fit같은 설정을 사용할 수가 없고, 최적화 기능또한 사용할 수 없다. 배경 이미지를 사용할 경우, Image 태그를 사용하면서 다른 요소들과 레이어를 중첩시키는 방법으로 사용하는 방법이 좋을 것 같다.