자원 경로 설정

자원 경로 설정

초기 생성된 프로젝트를 빌드하면 다음과 같이 index 파일이 생성된다.

<!doctype html>
<html lang="en">

<head>
    <meta charset="utf-8" />
    <link rel="icon" href="/favicon.ico" />
    <meta name="viewport" content="width=device-width,initial-scale=1" />
    <meta name="theme-color" content="#000000" />
    <meta name="description" content="Web site created using create-react-app" />
    <link rel="apple-touch-icon" href="/logo192.png" />
    <link rel="manifest" href="/manifest.json" />
    <title>React App</title>
    <script defer="defer" src="/static/js/main.29ce6c5e.js"></script>
    <link href="/static/css/main.31d6cfe0.css" rel="stylesheet">
</head>

<body><noscript>You need to enable JavaScript to run this app.</noscript>
    <div id="root"></div>
</body>

</html>

별도의 자원 경로를 설정하지 않았기 때문에 favicon, style, logo, script 등이 모두 /로 시작한다. 하지만 배포 환경에서는 context path를 알 수 없으므로 상대 경로로 설정하는 것이 일반적이다.

package.json 설정

package.json 파일에 homepage 속성을 추가하여 기본 시작 경로를 지정할 수 있다.

{
  "name": "home",
  //생략...
  "homepage": "./",
  //생략...
}

다시 빌드하면 index.html의 모든 외부 자원의 경로가 ./로 시작하는 것을 확인할 수 있다.

Last updated