리액트

create-react-app에서 local file을 사용하고 싶을 때

YJH3968 2021. 4. 13. 11:22
728x90

1. 문제

  • create-react-app에서 image src가 없거나 제대로 연결되지 않은 경우 default image를 표시하기 위해 구글에서 default image를 다운받아 local file로 사용하려고 했었다.
  • 구글링해서 찾은 결과 public 폴더 안에 image를 넣고 이를 참조할 때는 '/(public 폴더 안에서 file의 위치)'로 하면 된다고 하길래 그렇게 했더니 file을 계속 찾지 못하는 오류가 발생했다.
  • 특히 default image를 넣기 위해서 img 태그에 onError attribute를 추가하고 거기에 image를 넣었는데 그마저도 오류가 발생해서 onError 함수가 계속해서 재실행되는 상황이 발생했다.
  • 그래서 이를 해결하려면 default image를 create-react-app이 제대로 인식할 수 있도록 올바른 file 위치를 설정해야 했었다.

 

2. 해결

 

Using the Public Folder | Create React App

Note: this feature is available with react-scripts@0.5.0 and higher.

create-react-app.dev

  • 위 site을 참조한 결과 create-react-app에서는 public 폴더 내 file을 참조할 때 html을 사용하는 경우 '%PUBLIC%/(public 폴더 안에서 file의 위치)'를 사용하고, javascript를 사용하는 경우 process.env.PUBLIC_URL을 '/(public 폴더 안에서 file의 위치)' 앞에 붙여야 한다.
  • 이를 이용해 default image를 정상적으로 불러올 수 있었다.
  • 이런 site가 있는지도 모르고 구글링을 하느라 시간을 많이 낭비했었다. 앞으로는 이를 많이 참조해야겠다는 생각이 들었다.
728x90