๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
TIL

react) public ํด๋” src ํด๋”

by ์€์ง€:) 2023. 3. 10.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ—‚ public 

 

 

์ปดํŒŒ์ผ์‹œ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ๋“ค

์ ˆ๋Œ€๊ฒฝ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ (import ์‹œ "./ํŒŒ์ผ๋ช…" ์ด๋ ‡๊ฒŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ)

์‚ฌ์šฉ์ž๊ฐ€ ์›น๋ธŒ๋ผ์šฐ์ €์ƒ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ •์ ํŒŒ์ผ๋“ค (image) ์ด ๋‹ด๊น€

 

 

 

๐Ÿ—‚ src

 

๊ฐœ๋ฐœํ•˜๋ฉด์„œ ์ปดํฌ๋„ŒํŠธ ์•ˆ์—์„œ ์“ฐ์ด๋Š” ํŒŒ์ผ์„ ๋„ฃ์Œ

 

 

 

 

 

 

 

public ํŒŒ์ผ ๊ฐ€์ ธ์˜ฌ ๋•Œ ๋‹จ์ 

 

 

 

์›นํŒฉ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š๊ณ  ์›๋ณธ์ด ๋นŒ๋“œ๋จ

 

-> ํŒŒ์ผ์ด ๊ฒฝ๋Ÿ‰ํ™” ๋˜์ง€ ์•Š์Œ

-> ํŒŒ์ผ ๊ฒฝ๋กœ ์ž˜๋ชป ์ž…๋ ฅ์‹œ ์ปดํŒŒ์ผ ๋‹จ๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•  ๋•Œ 404 ์˜ค๋ฅ˜๋ฅผ ๋ฐ›์Œ

 

 

 

  const url =
    process.env.NODE_ENV === 'development'
      ? `./${domain}/image/img`
      : 'image/img';
      
 // ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋“ฏ

 

 

 


 

 

 

 

๊ฒฝ๋Ÿ‰ํ™”๋ฅผ ์œ„ํ•ด์„œ๋ผ๋„ src์— ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋„ฃ๋Š”๊ฒŒ ๋งž๊ฒ ๋„ค! โ˜บ๏ธ

 

ํŒ๋‹จ ํ›„ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ์‹œ๋„ํ•ด๋ดค๋‹ค

 

 

 

 

์ผ๋‹จ import ๋กœ ์‚ฌ์ง„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

 

 

 

 

 

์•ˆ ๋ถˆ๋Ÿฌ์™€์ง„๋‹ค

 

 

 

 

 

๊ตฌ๊ธ€๋ง ํ›„ ์‹œ๋„ํ•ด ๋ณธ ๊ฒƒ

 

 

1. ts ๋ผ์„œ ํ˜•์‹ ๋•Œ๋ฌธ์—? -> ์‹คํŒจ

declare module '*.jpg';
declare module '*.png';
declare module '*.jpeg';

// images.d.ts

 

 

 

2. webpack์—์„œ ํŒŒ์ผ ์••์ถ•ํ•  ๋• ๋”ฐ๋กœ ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค๊ตฌ? -> npm i file-loader, touch webpack.config.js -> ์‹คํŒจ

 

module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|jpe?g|gif)$/i,
        use: [
          {
            loader: 'file-loader',
          },
        ],
      },
    ],
  },
};

 

 

๊ณต์‹ ๋ฌธ์„œ webpack.config.js ๋‚ด์šฉ๋ฌผ๊นŒ์ง€ ๊ธ์–ด์™”์œผ๋‚˜ ์‹คํŒจ ใ… ใ… 

 

 

 

 

 

 

require ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

 

 

 

์ด์ƒํ•˜๊ฒŒ require์€ ๋œ๋‹ค

 

 

 

์ผ๋‹จ ๋นจ๊ฐ„์ค„ ์—†์ด ๊ฐ€์ ธ์™€์ง;;;;

 

 

 

 

 

๊ฒฝ๋กœ ํ™•์ธํ–ˆ์œผ๋‹ˆ ์ด์ œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŽ˜์ด์ง€์— ์ ์šฉํ•ด๋ณผ๊นŒ~ํ•˜๊ณ  ํ…Œ์ŠคํŠธ์ฐจ ๊ฐ„๋‹จํžˆ ๊ฒฝ๋กœ๋งŒ ๋„ฃ์—ˆ๋Š”๋ฐ

์—ญ์‹œ ์ด๋ฆ„์ด ๋ฐ”๋€Œ์–ด์žˆ์—ˆ๋‹ค

 

 

๐Ÿ‘‡ ์š”๋ ‡๊ฒŒ

 

 

 

์ „์— ์‚ฌ์šฉํ–ˆ๋˜ public ํด๋” ์•ˆ์˜ Image๋“ค์€ ๋”ฐ๋กœ ์›นํŒฉ์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ build ํŒŒ์ผ์— ๋“ค์–ด๊ฐ”๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฆ„์ด ๋ฐ”๋€Œ์ง€ ์•Š์•˜์ง€๋งŒ

์ด์ œ src ์•ˆ์— ์‚ฌ์ง„ ํŒŒ์ผ์„ ๋„ฃ์–ด๋‘์–ด์„œ ์ด๋ฆ„์ด ๋ฐ”๋€ ๊ฒƒ...

 

 

public ํด๋”์—๋„ image ํด๋” ๋„ฃ์€ ์ƒํƒœ๋กœ ๋น„๊ตํ•ด๋ดค์„ ๋•Œ

 

 

 

์š”๋Ÿฐ ์ฐจ์ด์ ์ด ์žˆ๋‹ค

 

 

 

 

๊ทธ๋ฆฌ๊ณ  ์•ˆํƒ€๊น๊ฒŒ๋„ catbow ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š”

 

IMG_ ๋งŒ ๋„ฃ์—ˆ์„๋•Œ 

์ž๋™์œผ๋กœ 1.jpg, 2.jpg ...

๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๋กœ์ง์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์„œ

 

์ด๋ฆ„์ด ๋ฐ”๋€ ํŒŒ์ผ ๋’ค์—  1.jpg, 2.jpg ...๊ฐ€ ๋ถ™์—ˆ๋‹ค ๐Ÿ˜‚

 

 

 

 

 

์บฃ๋ณด์šฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉํ•  ๋• ๋ฌด์กฐ๊ฑด pubilc์— ๋„ฃ๋Š” ๊ฒƒ์œผ๋กœ... ๐Ÿฅฒ

 

 

 

 

 

 

 

 

 

 

 

์ฐธ๊ณ  : https://velog.io/@daeun/React-public%ED%8F%B4%EB%8D%94-src%ED%8F%B4%EB%8D%94-%EC%96%B4%EB%94%94%EC%97%90-%EB%84%A3%EC%96%B4%EC%95%BC-%EB%90%98%EB%8A%94%EA%B1%B8%EA%B9%8C

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

css-in-js ์™€ css-in-css  (0) 2023.03.20
react ์™œ ์“ฐ๋‚˜์š”  (0) 2023.03.16
์ƒํƒœ๊ด€๋ฆฌ  (0) 2023.03.06
Node.js ) import/export ์‚ฌ์šฉ  (0) 2023.03.04
์ธ์ฆ ์ธ๊ฐ€ Session vs Token Based Authentication  (0) 2023.03.02

๋Œ“๊ธ€