Skip to content
On this page

Assets 資源

Nuxt 使用兩種方式來處理資源,像是「字體」、「圖像」、「樣式」...等。

Public 靜態資源

public/ 目錄用來放置「靜態」的資源,打包不會另外處理這個資料夾,是應用程式公開 URL 位置可以訪問的。

使用方式

若圖像在 public/img/nuxt3.png,可以使用 /img/nuxt3.png 來取得靜態資源。

vue
<template>
  <img src="/img/nuxt.png" alt="nuxt-image">
</template>

Assets 動態資源

nxut 是透過 vitewebpack 來打包應用程式,在打包過程中也會進行其它的套件處理 (優化、更小),而在 assets/ 目錄的資源會在打包的過程中被另外處理輸出。

使用方式

若圖像在 assets/img/nuxt.png,可以使用 ~/assets/img/nuxt.png 來取得。

vue
<template>
  <img src="~/assets/img/nuxt.png" alt="Discover Nuxt 3" />
</template>

注意

assets/ 目錄的資源,是會另外被打包工具處理過的,無法直接 /assets/img/nuxt3.png 訪問資源。若你有這個需求,請使用 public/ Public 靜態資源

Style 全域載入

可以在 nuxt.config 設置 vite 選項來「全域」載入樣式。

scss 設置方式

assets/_colors.scss

scss
$primary: #49240F;
$secondary: #E4A79D;

nuxt.config

js
export default defineNuxtConfig({
  vite: {
    css: {
      preprocessorOptions: {
        scss: {
          additionalData: '@use "@/assets/_colors.scss" as *;'
        }
      }
    }
  }
})

scss 設置方式

assets/_colors.sass

sass
$primary: #49240F;
$secondary: #E4A79D;
js
export default defineNuxtConfig({
  vite: {
    css: {
      preprocessorOptions: {
        sass: {
          additionalData: '@use "@/assets/_colors.sass" as *\n'
        }
      }
    }
  }
})