728x90
๋ฐ์ํ
React Router nested routes 404 Not Found Error
React Router ์ค์ฒฉ ๋ผ์ฐํ
React Router๋ก ์ค์ฒฉ ๋ผ์ฐํ ์ ํ๋ฉด ์๋์ ๊ฐ์ด ์์ฑํ ์ ์๋ค.
import { Routes, Route } from 'react-router-dom';
function App() {
return (
<Routes>
<Route path='admin' element={<Admin />}>
<Route path='all-problems' element={<AllProblems />} />
</Route>
...
</Routes>
);
}
React Router nested routes 404 Not Found Error
/admin
๊ฒฝ๋ก๋ก ์ ์ํ ๋ค ์๋ก๊ณ ์นจ์ ํ๋ฉด ๋ฌธ์ ์์ด ์ ๋๋ก ์๋ํ๋ค.
ํ์ง๋ง /admin/all-problems
๊ฒฝ๋ก๋ก ์ ์ํ ๋ค ์๋ก๊ณ ์นจ์ ํ๋ฉด 404 Not Found ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
script์ src๋ฅผ ์ ๋๊ฒฝ๋ก๋ก ์ค์ ํด์ค๋ค.
index.html์ script ํ๊ทธ์ ๊ฒฝ๋ก๊ฐ ์ ๋ ๊ฒฝ๋ก๋ก ์ค์ ๋์ด์๋์ง ํ์ธํด์ผํ๋ค.
์ด ์ด์๋ react router FAQ์๋ ์์ฑ๋์ด์๋ค.
// index.html
...
<script src="app.bundle.js"></script>
...
<script src="app.bundle.js"></script>
๋ก ์์ฑ๋์ด ์๊ธฐ ๋๋ฌธ์
์ค์ฒฉ ๋ผ์ฐํ
์์ admin/index.html
์์ app.bundle.js
๋ฅผ ์์ฒญํ๋ค.
์ฆ, admin/app.bundle.js
๋ฅผ ์์ฒญํ๋ค.
๋ฐ๋ผ์ src ๊ฒฝ๋ก๋ฅผ ์ ๋ ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํด์ฃผ์ด์ผํ๋ค.
// index.html
...
<script src="/app.bundle.js"></script>
...
Webpack์์ ์ ๋๊ฒฝ๋ก๋ก ๋ณ๊ฒฝํ๊ธฐ
import { resolve } from 'node:path';
import paths from './paths.js';
const commonConfig = {
...
entry: {
app: paths.src,
},
output: {
path: paths.build, // resolve('dist')
filename: '[name].bundle.js',
publicPath: '/',
clean: true,
},
...
};
export default commonConfig;
publicPath: '/'
๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
output.path ํด๋๋ก ๋ด๋ณด๋ด๋ ๋ชจ๋ ํ์ผ์ output.publicPath๋ฅผ ์ฐธ์กฐํ๋ค.
728x90
๋ฐ์ํ