Nuxt3入门:资源文件(第2节)

你好同学,我是沐爸,欢迎点赞、收藏、评论和关注。

Nuxt 为资源存放提供两种选择。可以使用两个目录(public/assets)来处理样式表、字体或图像等资源。

  • public/ 此目录中的文件将按原样复制到服务器根目录中。
  • assets/ 此目录中的文件将使用构建工具(Vite 或 webpack)进行处理。

public

  • 位置:位于项目的根目录下,通常与 pages、components 等目录并列。
  • 用途:用于存放完全静态的资源,如图片、字体、JS 文件(这些文件不会通过 webpack 处理)、.html 文件等。这些资源将直接映射到项目的根 URL 下。
  • 访问方式:可以直接通过 /资源名 的形式访问 public 目录下的资源,而无需经过 webpack 处理。
  • 注意:public 目录下的资源是静态的,不会进行打包、压缩等 webpack 处理,使用时需要自行考虑资源优化和缓存问题。

例如引用 public/ 目录中的文件"public/img/nuxt.png"

app.vue

html 复制代码
<template>
  <img src="/img/nuxt.png" alt="Discover Nuxt 3" />
</template>

浏览器中直接访问:http://localhost:3000/img/nuxt.png

assets

  • 位置:在 Nuxt3 中,assets 目录的位置也是位于根目录,与 pages、components 等目录并列。
  • 用途:用于存放需要在构建过程中被 webpack 处理的资源,如 Vue 组件中的样式文件(CSS、SCSS、Less 等)、图片等。这些资源可以通过 webpack 的 loader 进行转换和压缩,优化前端资源。
  • 访问方式:可以通过 ~/assets/ 访问 assets 目录下的资源,以确保它们能被 webpack 正确处理。
  • 注意点:因为 assets 目录下的资源会经过 webpack 处理,所以可以利用 webpack 的各种 loader 和插件进行资源优化。

app.vue

html 复制代码
<template>
  <img src="~/assets/img/nuxt2.png" alt="Discover Nuxt 3" />
</template>

注意,不能在浏览器中直接访问 assets 中的静态资源, 如 http://localhost:3000/img/nuxt2.png。

全局导入样式

要在 Nuxt 组件样式中全局插入语句,可以使用 Vite 选项在 nuxt.config 文件中进行配置。以定义 scss 变量为例:

第 1 步:安装依赖 sass

bash 复制代码
npm install sass

第 2 步:定义变量 assets/_colors.scss

css 复制代码
$primary: blue;
$secondary: red;

第 3 步:全局注册 nuxt.config.js

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

第 4 步:组件使用 app.vue

html 复制代码
<template>
  <div class="wrap">
    <img src="~/assets/img/nuxt2.png" alt="Discover Nuxt 3" />
    <p>Hello Nuxt3</p>
  </div>
</template>

<style lang="scss">
  .wrap {
    display: flex;
    justify-content: center;
    align-items: center;
    color: $primary;
  }
</style>

好了,分享结束,谢谢点赞,下期再见!

相关推荐
郭尘帅66637 分钟前
vue3基础学习(上) [简单标签] (vscode)
前端·vue.js·学习
njsgcs1 小时前
opencascade.js stp vite webpack 调试笔记
开发语言·前端·javascript
T0uken1 小时前
【前端】:单 HTML 去除 Word 批注
前端·html·word
st紫月2 小时前
用vue和go实现登录加密
前端·vue.js·golang
岁岁岁平安2 小时前
Vue3学习(组合式API——计算属性computed详解)
前端·javascript·vue.js·学习·computed·计算属性
HWL56793 小时前
Express项目解决跨域问题
前端·后端·中间件·node.js·express
刺客-Andy3 小时前
React 第三十九节 React Router 中的 unstable_usePrompt Hook的详细用法及案例
前端·javascript·react.js
Go_going_3 小时前
【js基础笔记] - 包含es6 类的使用
前端·javascript·笔记
浩~~4 小时前
HTML5 浮动(Float)详解
前端·html·html5
AI大模型顾潇5 小时前
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
前端·数据库·人工智能·语言模型·自然语言处理·prompt·neo4j