iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
Modern Web

蓋一個自己的 Nuxt 3 UI Module系列 第 20

放入 public 資料夾

  • 分享至 

  • xImage
  •  

在開發 Nuxt 時,通常我們會使用 publicassets 這兩個資料夾來區分不同類型的靜態資源,存放在 assets的檔案會經過 Vite 或 webpack 打包,適合放需要處理的圖片或 CSS;而存放在 public 的檔案則是不經過打包的過程,直接暴露在根目錄底下,適合存放網站的 logo、favicon 等。

接下來,我要將這個 public 資料夾的引入進模組內,讓使用者直接使用 module w提供的靜態資源。

step 1: 在模組中配置 nitroConfig.publicAssets
在模組中,我們需要先配置 nitroConfig.publicAssets 來公開 public 資料夾的內容。這裡我順便設定了快取時間,讓圖片可以緩存一年

 /** 裝入自己定義的 assets */ //
    nuxt.hook('nitro:config', async (nitroConfig) => {
	      // 一開始如果 publicAssets 不存在的話就設定成空 array
      nitroConfig.publicAssets ||= []
      nitroConfig.publicAssets.push({
        dir: resolver.resolve('./runtime/public'),
        maxAge: 60 * 60 * 24 * 365,  //圖片緩存時間
      })
    })

step 2: 在模組的 src/runtime 目錄下創建一個 public 資料夾,並準備一張 favicon 圖片丟進去。(比如我丟了一張 seal.ico)

step 3: 到 playground/nuxt.config.ts 中加入以下設定

 app: {
    head: {
      link: [
        { rel: 'icon', type: 'image/x-icon', href: '/seal.ico' }
      ]
    }
  }

這裡如果設定完後 favicon 沒有變換,不要急!先檢查一下路徑是否正確,或者試試清除瀏覽器的快取,應該就能看到效果啦~


上一篇
addComponentsDir
下一篇
extendPages
系列文
蓋一個自己的 Nuxt 3 UI Module30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言