$fetch vs useFetch,useFetch,useLazyFetchanduseAsyncDataonly work during setup or Lifecycle HooksuseLazyAsyncData
https://nuxt.com/docs/getting-started/data-fetching#usefetch
use... composables only work inside your vue templates. So whenever you have an issue on this, try to use $fetch , and if it's not availableimport { $fetch } from 'ofetch' public vs assets directorypublic directory for your static files like fonts, images, videos, etc. They are being served at your project root and will not be modified by vite/webpack.assets is only for files that will be processed by vite/webpack, and therefore also mostly need vite file handlers installed. This could be css files, svgs with nuxt-svgo or other files that are being processed on build.woff2 font files, that can be served as-is. You would put them into publicassets and include them with the nuxt.config css option.public because they are being minified at runtime, not a build time), or you can use a custom vite plugin which would require them to be in assets .
