6. Assets

Nuxt 는 스타일시트, 폰트, 이미지 등의 정적 자산을 관리하기 위해 public/, assets/두개의 디렉토리를 사용한다. public/ 디렉터리는 서버에서 사용되고, assets/ 디렉터리는 vite 혹은 webpack 같은 번들러에 의해 빌드될 때 사용된다.

자세한 내은은 이 곳을 참고하자.

 

이미지 불러오기

/pages/index.vue

<template>
  <div>
    <h1>Hello Nuxt 3</h1>
    <img src="~/assets/1.webp" alt="" />
  </div>
</template>

 

Static URL

스태틱 URL 이 필요하다면 public/ 디렉터리에 이미지가 있어야 한다.

<template>
  <div>
    <h1>Hello Nuxt 3</h1>
    <img src="/img/1.webp" alt="" />
  </div>
</template>

 

assets/ 디렉토리 와 public/img 디렉토리에 위 예제가 가르키는 파일이 같은 이미지라면 결과는 동일하다.

public/ 에 위치한 파일은 URL 로 직접 접근도 가능하다.

 

SVG Icon

최근에는 해상도에 구애받지 않는 SVG 를 아이콘으로 많이 쓰는 듯 하다, 반응형으로 개발할 때 사이즈를 고려하지 않아서 좋기 때문이다. /component/Icons 디렉토리를 생성하고, One.vue 파일을 생성하고 아래와 같이 코딩한다. svg 파일은 https://reactsvgicons.com/bootstrap 에서 카피해서 썼다. 리액트에서 쓰기위한 템플릿이라 {...props} 부분은 지워준다.

 

/components/Icons/One.vue

<template>
  <svg
      fill="currentColor"
      viewBox="0 0 16 16"
      height="1em"
      width="1em"
  >
    <path d="M2 0a2 2 0 00-2 2v12a2 2 0 002 2h12a2 2 0 002-2V2a2 2 0 00-2-2H2zm7.283 4.002V12H7.971V5.338h-.065L6.072 6.656V5.385l1.899-1.383h1.312z" />
  </svg>
</template>

 

/pages/index.vue

<template>
  <div>
    <h1>Hello Nuxt 3</h1>
    <IconsOne />
  </div>
</template>

 

위 코드의 결과는 아래와 같다.

'Nuxt 개발 가이드 > 01. Set up' 카테고리의 다른 글

8. 플러그인(plugins)  (1) 2024.01.01
7. 컴포저블(Composables)  (0) 2023.12.31
5. 레이아웃(layouts)  (0) 2023.12.31
4. 컴포넌트  (0) 2023.12.31
3. 페이지와 경로(Routing)  (1) 2023.12.31
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유