ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ์ •์  ์—์…‹์€ ์™œ src์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ?
    TECH 2023. 12. 16. 00:39

    ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” React + Vite ํ™˜๊ฒฝ์—์„œ ์ •์  ์—์…‹์„ public๊ณผ src ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ด€๋ฆฌํ•œ ๊ฒฝํ—˜์„ ์‚ดํŽด๋ณด๊ณ  ์Šค์Šค๋กœ ๋„์ถœํ•œ ๊ฒฐ๋ก ์„ ์„ค๋ช…ํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

     

    6์ฃผ ๋™์•ˆ ์ง„ํ–‰๋œ morak ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ •์  ์—์…‹์„ ๊ด€๋ฆฌํ•˜๋Š” assets ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ src → public ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ src ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์˜ฎ๊ฒจ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. 

     

    ์ด ์˜์‚ฌ ๊ฒฐ์ • ๊ณผ์ •์— ๋Œ€ํ•ด ์„œ์ˆ ํ•ด ๋ณด๊ณ , ๊ฒฐ๋ก ์ ์œผ๋กœ ์™œ src์—์„œ ๊ด€๋ฆฌํ•˜๊ฒŒ ๋˜์—ˆ๋Š”์ง€, public๊ณผ src ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๊ด€๋ฆฌํ–ˆ์„ ๋•Œ ๊ฐ ์–ด๋–ค ์žฅ๋‹จ์ ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    .
    โ”œโ”€โ”€ public
    โ”‚   โ””โ”€โ”€ assets # ์–ด๋””์— ๋‘๋Š” ๊ฒƒ์ด
    โ””โ”€โ”€ src
        โ””โ”€โ”€ assets # ๋งž์„๊นŒ?

     

     

    assets์„ src → public์œผ๋กœ ์˜ฎ๊ธฐ๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ

    assets์„ src ๋””๋ ‰ํ† ๋ฆฌ์—์„œ public ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์˜ฎ๊ธฐ๊ฒŒ ๋œ ์ด์œ ๋Š” ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ์‹œ ์—์…‹์˜ ๊ฒฝ๋กœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ์Šต๋‹ˆ๋‹ค.

     

    ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑํ•œ ์ด๋ฏธ์ง€ ํƒœ๊ทธ๋Š” ๋กœ์ปฌ ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ๋Š” ์ด๋ฏธ์ง€๋ฅผ ์ œ๋Œ€๋กœ ๋ถˆ๋Ÿฌ์™”์ง€๋งŒ, ๋นŒ๋“œ ํ™˜๊ฒฝ์—์„œ๋Š” src ํด๋”๊ฐ€ ์ƒ๊ธฐ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์–ด ์—‘๋ฐ•์ด ๋œจ๋Š” ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. 

     

    public ๋””๋ ‰ํ† ๋ฆฌ์—์„œ assets์„ ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด ๋นŒ๋“œ ์‹œ public ํ•˜์œ„์˜ ๋””๋ ‰ํ† ๋ฆฌ๋“ค์€ dist ๋””๋ ‰ํ† ๋ฆฌ์— ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    <img src='/src/assets/image.png' />

     

     

    ์‚ฌ์‹ค ์ด ๋ฌธ์ œ๋Š” public์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋” ์‰ฌ์šด ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์—ˆ์ง€๋งŒ... ํ•˜๋‹จ์—์„œ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    public์œผ๋กœ assets์„ ์˜ฎ๊ฒผ์„ ๋•Œ ์ƒ๊ธด ๋ฌธ์ œ

    ํ”„๋กœ์ ํŠธ์—์„œ๋Š” svg ํŒŒ์ผ์„ ReactComponent๋กœ import ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๊ณ , ๋กœ์ปฌ ์„œ๋ฒ„ ๋นŒ๋“œ ์‹œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ์ฝ˜์†”์— ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

     

    import { ReactComponent as Icon } from '../../public/arrow.svg';
    
    function Main() {
        return (
        	<div>
                <Icon />
            </div>
        )
    }

     

     

    public ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์ •์  ์—์…‹์€ JavaScript ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด import ํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๋‚ด์šฉ์˜ ๊ฒฝ๊ณ ์˜€์Šต๋‹ˆ๋‹ค.

    JavaScript ํŒŒ์ผ์—์„œ import ํ•˜๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๋ฉด src ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๋ผ๊ณ  ํ•˜๋„ค์š”.

     

    ๊ทธ๋Ÿฌ๋‚˜ ์ €ํฌ๋Š” ์‹œ๊ฐ„์  ์—ฌ์œ ๊ฐ€ ์—†์—ˆ๋‹ค๋Š” ํ•‘๊ณ„๋กœ ์ด ์—๋Ÿฌ ๋ฐœ์ƒ์˜ ์›์ธ์„ ์ œ๋Œ€๋กœ ์•Œ์•„๋ณด์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ”์Šต๋‹ˆ๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  ์ผ์ฃผ์ผ ๋’ค ๋ฉ˜ํ† ๋ง ์‹œ๊ฐ„, ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ์ด ์—๋Ÿฌ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ ํ•ด ์ฃผ์…จ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ผญ ์•Œ์•„๋ณด๋ผ๋Š” ๋ง์„ ๋ง๋ถ™์ด์…จ์ฃ .

     

    ์šฐ์„  Assets in public directory cannot be imported from JavaScript ์—๋Ÿฌ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์•Œ์•„๋ด…์‹œ๋‹ค.

     

    Vite์—์„œ์˜ asset ๊ด€๋ฆฌ

    Vite ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

     


    ๋‹ค์Œ ์—์…‹์˜ ๊ฒฝ์šฐ

    • robots.txt์™€ ๊ฐ™์ด ์†Œ์Šค ์ฝ”๋“œ์—์„œ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ์—์…‹
    • ํ•ด์‹ฑ ์—†์ด ํ•ญ์ƒ ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ–๋Š” ์—์…‹
    • ๋˜๋Š” URL์„ ์–ป๊ธฐ ์œ„ํ•ด ๊ตณ์ด import ํ•  ํ•„์š” ์—†๋Š” ์—์…‹

    public ๋””๋ ‰ํ„ฐ๋ฆฌ ์•„๋ž˜์— ์—์…‹์„ ์œ„์น˜์‹œํ‚ค์„ธ์š”.

    ์ด๊ณณ์— ์œ„์น˜ํ•œ ์—์…‹์€ ๊ฐœ๋ฐœ ์‹œ์— / ๊ฒฝ๋กœ์—, ๋ฐฐํฌ ์‹œ์—๋Š” dist ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์œ„์น˜ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

     

    ๋งˆ์ง€๋ง‰์œผ๋กœ, ๋‹ค์Œ์˜ ์‚ฌํ•ญ์„ ์œ ์˜ํ•ด์ฃผ์„ธ์š”.

    • public ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์œ„์น˜ํ•ด ์žˆ๋Š” ์—์…‹์„ ๊ฐ€์ ธ์˜ค๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, ํ•ญ์ƒ ๋ฃจํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ๊ฐ€์ ธ์™€์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค. ( public/icon.png ์—์…‹์€ ์†Œ์Šค ์ฝ”๋“œ์—์„œ /icon.png์œผ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.)
    • public ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์œ„์น˜ํ•œ ์—์…‹์€ JavaScript ์ฝ”๋“œ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

     

    ๊ทธ๋ฆฌ๊ณ  Vite ๊ณต์‹ ๋ฌธ์„œ ๋‚ด์šฉ ์ค‘ ์ •์  ์—์…‹ ํ•ธ๋“ค๋งํ•˜๊ธฐ ์„น์…˜์— ๋”ฐ๋ฅด๋ฉด src ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์žˆ๋Š” ์ •์  ์—์…‹์€ import ๋ฌธ์œผ๋กœ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    import Image from './main.png'
    
    function Main() {
        return <img src={Image} />;
    }

     

    ์ •์  ์—์…‹์„ import ๋ฌธ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด, Vite๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ Webpack์˜ file-loader์™€ ๋น„์Šทํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด ์ค๋‹ˆ๋‹ค.

    ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ ์‹œ์—๋Š” Image ๊ฐ์ฒด๊ฐ€ /main.png ๊ฐ’์œผ๋กœ ํ• ๋‹น๋˜๊ณ , ๋นŒ๋“œ ์‹œ์—๋Š” ์ถ”๊ฐ€ ์„ค์ • ์—†์ด /main.[hash].png๊ณผ ๊ฐ™์€ ๊ฐ’์ด ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค.

     

     

    ์ด ๋ฐฉ์‹์œผ๋กœ ์ €ํฌ๋Š” public ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์—์…‹์„ ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ ์ฝ˜์†”์— ์—๋Ÿฌ๊ฐ€ ๋œจ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , src ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ์—์…‹์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋นŒ๋“œ ์‹œ ์ด๋ฏธ์ง€์˜ ์—‘๋ฐ•์ด ๋œจ๋Š” ๋ฌธ์ œ๋ฅผ ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

     

     

     

     

    ๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” ์—ฌ๊ธฐ์„œ public ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์œ„์น˜ํ•œ ์—์…‹์€ JavaScript ์ฝ”๋“œ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค์— ๋Œ€ํ•œ ์ด์œ ๊ฐ€ ๊ถ๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค.

    ์ด์œ ๋ฅผ ์ฐพ์•„๋ณด๋˜ ์ค‘, Why React can not access images from public - DEV Community ๊ธ€์„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค.

     

    ์ด ๊ธ€์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ๋งํ•ฉ๋‹ˆ๋‹ค.

    public ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ํ”„๋กœ๋•์…˜์„ ๋นŒ๋“œํ•  ๋•Œ ์ตœ์ข… ๋ฒˆ๋“ค์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋Š” html ํŒŒ์ผ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. src ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ์ด๋ฏธ์ง€๋Š” ์ตœ์ข… ๋ฒˆ๋“ค์˜ ๊ฒฐ๊ณผ๋ฌผ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋˜๊ณ , src ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ๋กœ์„œ import ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

     

     

     

    ์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ๋นŒ๋“œ๋œ ๊ฒฐ๊ณผ๋ฌผ์˜ ์ฐจ์ด๋„ ์‚ดํŽด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    public ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์—์…‹์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ

     

    /public/assets/main.png๋ฅผ ์ด๋ฏธ์ง€๋กœ ์‚ฝ์ž…ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด url ํ˜•ํƒœ๋กœ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.

    <img src='/assets/main.png' />

     

     

    ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ source ํƒญ์—์„œ ์‚ดํŽด๋ณธ ํŒŒ์ผ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    .
    โ”œโ”€โ”€ assets
    โ”‚   โ”œโ”€โ”€ index-[hash].js
    โ”‚   โ””โ”€โ”€ index-[hash].css
    โ””โ”€โ”€ main.png

     

    assets์˜ ํ•˜์œ„์—๋Š” ํ•˜๋‚˜๋กœ ๋ฒˆ๋“ค๋ง ๋œ js ํŒŒ์ผ๊ณผ css ํŒŒ์ผ์ด ์žˆ๊ณ , assets์™€ ๊ฐ™์€ ๊ฒฝ๋กœ์— main.png ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.

     

     

    src ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์—์…‹์„ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ

    ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ source ํƒญ์—์„œ ์‚ดํŽด๋ณธ ํŒŒ์ผ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    .
    โ””โ”€โ”€ assets
        โ”œโ”€โ”€ index-[hash].js
        โ”œโ”€โ”€ index-[hash].css
        โ””โ”€โ”€ main.png

     

    ํ•˜๋‚˜๋กœ ๋ฒˆ๋“ค๋ง ๋œ js ํŒŒ์ผ๊ณผ css ํŒŒ์ผ, ๊ทธ๋ฆฌ๊ณ  ์ด๋ฏธ์ง€ ํŒŒ์ผ์ด ๋ชจ๋‘ assets ๋””๋ ‰ํ† ๋ฆฌ์— ๋“ค์–ด ์žˆ๋Š” ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. 

    ์ด์ œ์•ผ src ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด์— ์žˆ๋Š” ์ด๋ฏธ์ง€๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆ๋กœ์„œ import ๋œ๋‹ค๋ผ๋Š” ๋œป์„ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค.

     

     

    ์ •์  ์—์…‹ ๊ด€๋ฆฌ ์œ„์น˜์— ๋”ฐ๋ฅธ ์žฅ๋‹จ์ 

     

    ๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์ด๋ฏธ์ง€๊ฐ€ ๋ฒˆ๋“ค์˜ ๊ฒฐ๊ณผ๋ฌผ ์ค‘ ํ•˜๋‚˜๋กœ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์€ ํ”ผํ•ด์•ผ ํ•˜๋Š” ๊ฑธ๊นŒ์š”?

    ์ œ๊ฐ€ ์ƒ๊ฐํ•œ ์ •์  ์—์…‹์„ public๊ณผ src ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ฐ๊ฐ์—์„œ ๊ด€๋ฆฌํ–ˆ์„ ๋•Œ์˜ ์žฅ๋‹จ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

     

    ์ฒซ ๋ฒˆ์งธ๋Š” ํƒ€์ž… ์•ˆ์ •์„ฑ์ž…๋‹ˆ๋‹ค. src ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์—์„œ ๊ด€๋ฆฌ๋˜๋Š” ์—์…‹์ด ์‚ญ์ œ๋˜๋ฉด ๋นŒ๋“œ๊ฐ€ ์‹คํŒจํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—์…‹์ด ์‚ญ์ œ๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ public ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋นŒ๋“œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์•ˆ์ •์„ฑ์ด ๋ณด์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ๋‘ ๋ฒˆ์งธ๋Š” ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์•„ํ‹ฐํด๊ณผ ๊ฒฐ๊ณผ์— ๋”ฐ๋ฅด๋ฉด public ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์—์…‹์€ Webpack์ด๋‚˜ Vite ๊ฐ™์€ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ํ†ตํ•ด์„œ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋นŒ๋“œ ์ตœ์ ํ™”์˜ ํ˜œํƒ์„ ๋ฐ›์ง€ ๋ชปํ•œ๋‹ค๋Š” ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ์„ธ ๋ฒˆ์งธ๋Š” public ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์—์…‹์˜ ํŒŒ์ผ๋ช…์€ ๊ทธ๋Œ€๋กœ์ธ ์ฑ„ ๋‚ด์šฉ๋งŒ ๋ณ€๊ฒฝ๋œ๋‹ค๋ฉด, ์—์…‹์ด ์บ์‹ฑ ๋˜์–ด ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์„ ์œ„ํ—˜์„ฑ๋„ ์กด์žฌํ•œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค.

     

     

    ๋”ฐ๋ผ์„œ Vite๊ฐ€ public ํด๋”์—์„œ์˜ ์—์…‹ ์‚ฌ์šฉ์„ ๊ฒฝ๊ณ ํ•˜๋Š” ์ด์œ ๋Š”, ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์„ ํ†ตํ•œ ์˜์กด์„ฑ ๊ด€๋ฆฌ์™€ ๋นŒ๋“œ ๊ณผ์ •์˜ ์ตœ์ ํ™”๋ฅผ ๊ถŒ์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ด๋ผ๋Š” ๊ฒฐ๋ก ์„ ๋‚ด๋ฆด ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

     

    ๋งˆ์น˜๋ฉฐ

    ์ด์ „ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” src ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์—์…‹์„ import ํ•˜๋Š” ํ˜•ํƒœ์˜ ์ฝ”๋“œ๋ฅผ ๋‹น์—ฐํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

    ํ•˜์ง€๋งŒ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๊ธฐ์กด ์ฝ”๋“œ ์Šคํƒ€์ผ์ด ์•„๋‹Œ ์—ด๋ฆฐ ์‚ฌ๊ณ ๋กœ ๋‹ค๋ฅธ ์Šคํƒ€์ผ์˜ ์ฝ”๋“œ๋„ ๊ฒฝํ—˜ํ•ด ๋ณด์ž๋Š” ๋งˆ์Œ๊ฐ€์ง์„ ๊ฐ€์กŒ๋Š”๋ฐ์š”.

    ๋‹จ์ˆœํžˆ ๋ฌธ์ž์—ด๋กœ ์ž‘์„ฑ๋˜์—ˆ๋˜ ๊ฒฝ๋กœ๋ฅผ import ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค๋ฉด ๋ฌธ์ œ๋ฅผ ๋นจ๋ฆฌ ํ•ด๊ฒฐํ•˜๊ณ  ๋‹ค์Œ ์Šคํ…์œผ๋กœ ๋„˜์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ์—ˆ์„ ๊ฒ๋‹ˆ๋‹ค.

     

    ๋น ๋ฅธ ํ•ด๊ฒฐ์ฑ…์„ ์–ป์ง€ ๋ชปํ•œ ๋Œ€์‹  ์ด๋Ÿฐ์ €๋Ÿฐ ์‹œ๋„์™€ ์‚ฝ์งˆ์„ ํ†ตํ•ด ๋‹น์—ฐํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๋˜ ์ •์  ์—์…‹์˜ ๊ด€๋ฆฌ ์œ„์น˜์— ๋Œ€ํ•ด ๋‹ค์‹œ ๊ณ ๋ฏผํ•ด ๋ณด๊ณ  Vite์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์—๋Ÿฌ์˜ ๊ทผ๋ณธ์ ์ธ ์›์ธ๊นŒ์ง€ ๋” ๊นŠ๊ฒŒ ํŒŒ๊ณ ๋“ค์–ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋˜ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค.

    ๋Œ“๊ธ€

Designed by Tistory.