Next.js: ์ด๋ฏธ์ง€๋ฅผ ์ •์  ํด๋”๋กœ ์ด๋™ํ•˜๋Š” Webpack ๋กœ๋”

์— ๋งŒ๋“  2017๋…„ 04์›” 28์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: vercel/next.js

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

import image from './image.png; // image variable should have static url

๋‚ด ๋กœ๋”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค( next.config.js ):

module.exports = {
  webpack: config => {
    // handle images
    config.module.rules.push({
      test: /\.(ico|gif|png|jpg|jpeg|svg|webp)$/,
      use: [
        {
          loader: 'emit-file-loader',
          options: {
            name: 'dist/[path][name].[ext]',
          },
        },
        {
          loader: 'file-loader',
          options: {
            context: 'public',
            name: '/static/images/[name]-[hash].[ext]',
            publicPath: '/',
          },
        },
      ],
    });

    return config;
  },
};

๊ฒฐ๊ณผ๋Š” ๊ฑฐ์˜ ์ข‹์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ์ง€ ํŒŒ์ผ์€ .next/static/images/image-ef89065b898bb1e3e802c62e4b264417.png

image ๋ณ€์ˆ˜๋Š” /static/images/image-ef89065b898bb1e3e802c62e4b264417.png ์ด์ง€๋งŒ http://localhost:3000/static/images/image-ef89065b898bb1e3e802c62e4b264417.png ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•˜๋ ค๊ณ  ํ•˜๋ฉด 404 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์–ด๋–ค ์•„์ด๋””์–ด?

์ถ”์‹ . ์ˆ˜๋™์œผ๋กœ ํŒŒ์ผ์„ static ํด๋”๋กœ ์ด๋™ํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ด€๋ จ๋œ ์ด๋ฏธ์ง€๊ฐ€ ๊ตฌ์„ฑ ์š”์†Œ ์ž์ฒด์™€ ๋™์ผํ•œ ํด๋”์— ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํ˜„์žฌ ์ด๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด ๋” ๋นจ๋ฆฌ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

ํ˜„์žฌ ์ด๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ ์œ„ํ•ด ๋” ๋นจ๋ฆฌ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์— ๋Œ€ํ•œ ์†Œ์‹์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰