Nuxt 菜鸟入门学习笔记四:静态资源

news/2024/11/29 4:43:08/

文章目录

  • public 目录
  • assets 目录
  • 全局样式导入

Nuxt
Nuxt 官网地址: https://nuxt.com/

Nuxt 使用以下两个目录来处理 CSS、fonts 和图片等静态资源:

public 目录

public 目录用作静态资产的公共服务器,可通过应用程序定义的 URL 公开获取。
换言之,就是可以通过应用程序的代码或浏览器通过根 URL / 获取 public 目录中的文件。

public 目录下的内容将原样提供给服务器根目录。

应用:

  • 在应用程序代码中,通过根 URL / 获取 public 目录中的文件:
<template><!-- 在静态 URL /img/nuxt.png 上引用 public/img/ 目录中的图像文件: --><img src="/img/nuxt.png" alt="Discover Nuxt 3" />
</template>
  • 在浏览器中通过根 URL / 获取 public 目录中的文件:

可以在浏览器中地址栏输入 http://localhost:3000/img/nuxt-logo.png 访问 public/img/ 目录中的图像文件。

assets 目录

Nuxt 使用 Vite 或 webpack 来构建和捆绑应用程序。这些构建工具的主要功能是处理 JavaScript 文件,但也可以通过插件(Vite)或加载器(webpack)进行扩展,以处理其他类型的资产,如样式表、字体或 SVG。这一步主要出于性能或缓存目的(如样式表最小化或浏览器缓存失效)对原始文件进行转换。

按照惯例,Nuxt 使用 assets/ 目录来存储这些文件,但该目录没有自动扫描功能,您可以使用任何其他名称。

在应用程序的代码中,可以使用 ~/assets/ 路径引用 assets/ 目录中的文件。

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

如上例所示,引用一个图像文件,如果构建工具被配置为处理该文件扩展名,该文件就会被处理。

注意: Nuxt 不会通过静态 URL(如/assets/my-file.png)提供 assets/目录下的文件。如果您需要静态 URL,请使用 public/目录。

全局样式导入

要在 Nuxt 组件样式中全局插入语句,可以在 nuxt.config 文件中使用 Vite 选项。
应用代码如下:

  1. 在 assets/scss 目录下创建一个 _colors.scss 文件,来定义页面和组件要统一使用的颜色:
// assets/scss/_colors.scss$primary: blue;
$secondary: lightblue;
  1. 在 nuxt.config 中进行配置:
// nuxt.config.tsexport default defineNuxtConfig({vite: {css: {preprocessorOptions: {scss: {additionalData: '@use "@/assets/_colors.scss" as *;',},},},},
});
  1. 在 Nuxt 页面和组件中使用步骤 1 中定义的颜色:
// pages/about.vue<template><div><h1>@ about page</h1><AppAlert>AppAlert Component.</AppAlert><div><p class="primary-text">public 目录下的图片:</p><img src="/img/avatar.jpg" style="height: 80px" /></div><div><p class="second-text">assets 目录下的图片:</p><img src="~/assets/img/avatar.jpg" style="height: 80px" /></div></div>
</template><style lang="scss" scoped>
.primary-text {// 此处使用全局样式color: $primary;
}.second-text {// 此处使用全局样式color: $secondary;
}
</style>

注意:上面代码要正常运行,需要安装 SCSS 预处理器,安装命令为 pnpm add sass

至于更多在 Nuxt 中样式设计和使用,将会在下个章节会做进一步详细介绍。


http://www.ppmy.cn/news/1078692.html

相关文章

Spring三级缓存解决循环依赖

Spring三级缓存解决循环依赖 一 Spring bean对象的生命周期 二 三级缓存解决循环依赖 实现原理解析 spring利用singletonObjects, earlySingletonObjects, singletonFactories三级缓存去解决的&#xff0c;所说的缓存其实也就是三个Map 先实例化的bean会通过ObjectFactory半…

【马蹄集】第二十四周——高精度计算专题

高精度计算专题 目录 MT2191 整数大小比较MT2192 AB problemMT2193 A-B problemMT2194 大斐列MT2195 升级版斐波那契数列MT2196 2的N次幂 MT2191 整数大小比较 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 给出两个正整数&…

问道管理:什么信号?煤飞色舞钢花溅

近期重磅利好不断&#xff0c;对应到A股商场&#xff0c;究竟哪个板块最获益&#xff0c;商场讨论热烈。 地产分析师&#xff1a;方针力度超预期&#xff0c;主张加仓。 银行分析师&#xff1a;存量房贷对银行股心情上的压制完毕&#xff0c;值得重视。 消费分析师&#xff…

群狼调研(长沙产品前期调研)| 新产品接受度研究指标设计

本文由群狼调研(长沙产品客户需求调研)出品&#xff0c;欢迎转载&#xff0c;请注明出处。新产品接受度研究的内容涵盖了多个方面&#xff0c;主要是为了深入了解消费者对新产品的态度、行为和意向。以下是一些可能包括在新产品接受度研究中的内容&#xff1a; 1. 产品特性和功…

NowCoder刷题 Python篇

NowCoder刷题 Python篇 Python入门 01 输入输出输入输出NP1 Hello World!NP2 多行输出NP3 读入字符串 01 输入输出 输入输出 NP1 Hello World! 参考代码&#xff1a; str Hello World! print(str)结果&#xff1a; NP2 多行输出 参考代码&#xff1a; str1 Hello World!…

Java注解和反射

注解(Java.Annotation) 什么是注解&#xff08;Annotation&#xff09;&#xff1f; Annotation是从JDK5.0开始引入的新技术 Annotation的作用: 不是程序本身&#xff0c;可以对程序作出解释(这一点和注释(comment)没什么区别)可以被其他程序(比如:编译器等)读取Annotation的…

软件测试/测试开发丨Python 学习笔记 之 链表

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接&#xff1a;https://ceshiren.com/t/topic/26458 链表与数组的区别 复杂度分析 时间复杂度数组链表插入删除O(n)O(1)随机访问O(1)O(n) 其他角度分析 内存连续&#xff0c;利用CPU的机制&#xff0…

redis如何优化内存

string转hash存 对key拆分&#xff0c;成hash&#xff0c;注意&#xff1a;每个hash key下的filed-value个数不能超过限定值&#xff0c;否则不会走ziplist存储&#xff1b;因此可以进行hash算法来分配hash桶&#xff0c;控制每个桶的原数个数&#xff1b;或者取数字key 的后三…