์ด๋ฒ ์๊ฐ์๋ Next JS๊ฐ ์ด๋ป๊ฒ static Assets๋ค์ ๊ด๋ฆฌํ๋์ง ์์๋ณผ ๊ฒ์ด๋ค.
Static Assets ์ด๋ผ๊ณ ํ๋ค๋ฉด ์ผ๋ฐ์ ์ผ๋ก Jpeg, png, svg์ ๊ฐ์ ์ด๋ฏธ์ง๋ mp4, mov์ ๊ฐ์ Video ๋ฐ์ดํฐ์ด๋ค.
assets
next๋ ์ด๋ฏธ์ง๊ฐ์ static assets๋ค์ public ๋๋ ํ ๋ฆฌ์์ ๊ด๋ฆฌํ๋ค.
๋ง์ฝ ์ด๋ฐ asset๋ค์ ์ฌ์ฉํ๊ธธ ์ํ๋ค๋ฉด pages ๋๋ ํ ๋ฆฌ์์ public ์๋์ ์๋ asset๋ค์ ๊ฐ์ ธ์์ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ด๋ฏธ์ง ๋ถ๋ฌ์ค๋ ์์ ํด๋ณด์
์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฏธ์ง์ ์์์ ๋ถ๋ฌ๋ณด๋ ๊ฐ๋จํ ์์ ๋ฅผ ๋ง๋ค์ด๋ณผ ๊ฒ์ด๋ค.
npm ๋ชจ๋ ์ค์น
์ฐ์ styled-components๋ฅผ npm ๋ชจ๋์ ์ถ๊ฐ์์ผ๋ณด์.
// npm ์ฌ์ฉ์์ผ ๊ฒฝ์ฐ
> $ npm install styled-components
// yarn ์ฌ์ฉ์์ผ ๊ฒฝ์ฐ
> $ yarn add styled-components
๋ฅผ ์ ๋ ฅํด์ ์์กด์ฑ์ ์ถ๊ฐ์์ผ์ฃผ์.
asset ๋๋ ํ ๋ฆฌ ์์ฑ
์ด์ asset๋ค์ ์ ์ฅ์ํฌ ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค ๊ฒ์ธ๋ฐ, public
์๋์ 2๊ฐ์ง ๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด ์ค ๊ฒ์ด๋ค.
public/iamges
๋๋ ํ ๋ฆฌpublic/movies
๋๋ ํ ๋ฆฌ
๊ฑฐ๊ธฐ์ assets๋ค์ ๋ฃ๊ณ ์ฌ์ฉํ ๋๋ src="/images/..."
์ด๋ฐ์์ผ๋ก public ์๋์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
ํน์ ๊ทธ๋ด์ผ ์๊ฒ ์ง๋ง public ์ด๋ผ๊ณ ๋ค๋ฅธ ๋๋ ํ ๋ฆฌ๋ฅผ ์ด๋ฆ์ง์ผ๋ฉด ์ค๋ณต์ผ๋ก ๊ฒ์๋๋ ์ฃผ์ํด์ผ ํ๋ค.
์ด์ ์ฝ๋ฉ์ ํด๋ณด์.
index.jsx
import Link from "next/Link";
import styled from "styled-components";
const RootContainer = styled.div`
display: flex;
align-items: center;
justify-content: center;
background: wheat;
`;
const ImageContainer = styled.div`
width: 600px;
height: 600px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid;
border-radius: 10px;
`;
const ImageText = styled.p``;
const ImageBox = styled.img`
width: 400px;
height: 400px;
display: block;
`;
const MovieContainer = styled.div`
width: 600px;
height: 600px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid;
border-radius: 10px;
`;
const MovieText = styled.p``;
const MovieBox = styled.video`
width: 400px;
height: 400px;
display: block;
`;
export default function Home() {
return (
<RootContainer>
<ImageContainer>
<ImageBox src="/images/xd.png" />
<ImageText>์ด๋ฏธ์ง</ImageText>
</ImageContainer>
<MovieContainer>
<MovieBox src="/videos/video.mov" />
<MovieText>์์</MovieText>
</MovieContainer>
</RootContainer>
);
}
styled-components๋ฅผ ์ด์ฉํด์ ์ฝ๋ฉ์ ํ๋๋ฐ, ์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ styled-components๊ฐ ์๋๋ผ src="/images/xd.png" ์ ๊ฐ์ ๊ฒฝ๋ก์ด๋ค.
next๋ public ๋๋ ํ ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋๊ฒฝ๋ก๋ก ์ก๊ณ ์์ผ๋ path์ ์ฃผ์ํ์.
๋ฒ์ธ๋ก robots.txt๋ public ์๋์์ ๊ด๋ฆฌํ๋ค!
๊ทธ๋ฆฌ๊ณ public ํด๋ ์๋์๋ robots.txt ํ์ผ๋ ์์นํ ์ ์๋ค.
robots.txt ํ์ผ์ Google์ด Site๋ฅผ ๊ฒ์ฆํ ๋ ํด๋น ํ์ผ์ ๊ฒ์ฆํ๋๋ฐ ์ด๊ฑด ์ํค ๋ฐฑ๊ณผ robot.txt์ ์ฝ์ด๋ณด๋ฉด ๋๋ค.
๋๊ธ