반응형
리액트를 사용할 때 이미지 파일 같은 것들을 public 폴더와 assets 폴더에 넣곤 하는데 이 둘의 차이점이 무엇인지 궁금했다
차이점을 알아보자
Public
퍼블릭 폴더에 있는 데이터들은 빌드 과정에서 공개적으로 제공된다. 즉 접속하는 유저가 마음대로 접근할 수 있다는 뜻이다.
만약 public/image.jpg 라고 있다면
localhost:5173/image.jpg를 url로 하여 접근할 수 있다는 뜻이다.
그렇기에 코드내에서 사용할 때에도 <img src="image.jpg"></img>처럼 사용할 수 있는 것이다
src/assets (정확히 말하면 assets폴더일 필요는 없고 src 폴더안에만 있으면 된다)
공개적으로 제공되지 않기에 유저가 접근할 수 없다
빌드 과정에서 최적화되어 제공하기 직전에 public 폴더에 '삽입'된다.
그렇기에 <img src="./src/assets/image.jpg> 처럼 사용한다.
언제 무엇을 사용할까?
public: index.html과 같이 리액트 빌드 과정을 거치지 않는 곳에 넣을 이미지 거나, 파비콘과 같은 것을 사용할 때
assets: 컴포넌트 속에서 이미지를 사용할 때
물론 무조건 적인것은 없다. 사용하기 편한 대로 사용하자.
반응형
'리액트(react)' 카테고리의 다른 글
react 리액트 setState 바로 적용되지 않는 이유 (1) | 2024.01.21 |
---|---|
리액트의 훅 기능들 요약 react hooks (0) | 2023.08.14 |