[VanillaJS로 블로그 만들기] 2. Client Side Rendering 구현
우선 webpack.config.js
에
devServer: {
port: 3000,
historyApiFallback: true // this!
},
를 추가해준다. 하지않을경우 webpack-dev-server
는 /
로 올 경우는 index.html
을 로드하지만 예를 들어 /post
를 요청할경우 해당 위치에 있는 리소스를 로드하려고 한다.
historyApiFallback
을 추가하면 404에러가 발생할 때 index.html
을 로드한다.
하지만 현재 상태로는 webpack-dev-server
는 nested route를 지원하지 않는다. 즉, localhost:3000/post
은 동작하지만 localhost:3000/post/answer
는 동작하지 않는다.
localhost:3000/post/answer
를 입력하면 localhost:3000/post/answer/index.js
를 찾으려고 하거나 404 Error
가 발생한다. 이를 해결하기 위해 stackoverflow를 찾다보니 여러가지 해결방법이 나왔다.
webpack.config.js
의output
에publicPath: '/'
를 추가하는 것index.js
를 import하는index.html
에서 import하는 방식을src='index.js'
에서src='/index.js'
로 바꾸는 것
이었다. 이 중 나는 1번 해결방법은 동작하지 않았고 2번으로 해결했다.
AS-IS
<html>
<head>
<title>JS Choi</title>
</head>
<body>
<div id="root"></div>
<script src="index.js"></script>
</body>
</html>
TO-BE
<html>
<head>
<title>JS Choi</title>
</head>
<body>
<div id="root"></div>
<script src="/index.js"></script>
</body>
</html>
이렇게 바꾸어주면 주소창의 경로가 아니라 항상 root(/
)에서 index.js
를 탐색하기때문에 원하는 결과가 나온다.
Author And Source
이 문제에 관하여([VanillaJS로 블로그 만들기] 2. Client Side Rendering 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cjsjyh/VanillaJS로-블로그-만들기-2.-Client-Side-Rendering-구현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)