【vue3|第23期】Vite + Vue3: 深入理解public和assets文件夹的作用与使用

news2024/11/15 7:00:45

日期:2024年8月14日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006

说在最前面:本文 vue3 的示例代码,在没有另外声名的情况下,均采用 <script setup> 组合式代码风格,风格统一,避免混乱,请各位新老食客放心食用哈 ^ _ ^


文章目录

  • 一、前言
  • 二、public 文件夹:直接访问的资源,静态资源的家园
    • 1、作用
    • 2、示例
  • 三、assets 文件夹:经过处理的资源,资源加工厂
    • 1、作用
    • 2、示例
  • 四、图片资源的放置与使用
  • 五、结语


在这里插入图片描述


一、前言


在现代前端开发中,Vite 作为一种快速的开发服务器和生产构建工具,与 Vue3 框架的结合为开发者提供了高效且灵活的项目构建环境。在 Vite + Vue3 的项目结构中,publicassets 文件夹扮演着至关重要的角色,它们分别用于存放不同的静态资源,本文将详细介绍这两个文件夹的作用以及图片资源的存放和使用方法。

二、public 文件夹:直接访问的资源,静态资源的家园


Vite 项目中,public 文件夹扮演着一个特殊的角色。这是一个预定义的文件夹,用于存放不需要经过任何处理的静态资源文件。这些文件会原封不动地被复制到最终的构建输出目录(通常是 dist),并且可以直接通过绝对路径访问。

1、作用

  • 静态资源托管: 存放不需要处理的文件,如 favicon.icorobots.txt 等。
  • 绝对路径访问: 可以直接通过 / 开头的路径访问这些文件,无需担心路径转换问题。

2、示例

想象一下,你的项目需要一个网站的图标。你可以将 favicon.ico 文件放在 public 文件夹中,然后在 index.html 中这样引用它:

<!-- 直接引用 public 目录下的图片 -->
<link rel="icon" href="/favicon.ico">

三、assets 文件夹:经过处理的资源,资源加工厂


public 文件夹不同,assets 文件夹用于存放那些需要经过 Vite 处理的资源文件。这包括样式表、JavaScript 文件、图片等。Vite 会对这些文件进行必要的编译、压缩和缓存优化,确保资源加载效率。在 Vue3 的单文件组件 (SFC) 中,可以使用 ES6import 语法或动态绑定来引入 assets 文件夹中的资源:

1、作用

  • 资源处理: 存放需要 Vite 处理的资源文件。
  • 加载器支持: 可以使用 Vite 提供的加载器来处理这些文件。
  • 构建优化: 在构建过程中,Vite 会自动处理这些文件,并将它们复制到输出目录。

2、示例

假设你有一个项目 logo,你想对其进行压缩和优化。你可以将 logo.png 文件放在 assets 文件夹中,然后在 Vue 组件中这样引用它:

<template>
  < img :src="require('@/assets/logo.png')" alt="Logo">
</template>

或者,你可以使用 ES 模块导入的方式:

<template>
  < img :src="logo" alt="Logo" />
</template>

<script setup>
import logo from '@/assets/logo.png';
</script>

四、图片资源的放置与使用


Vite + Vue3 项目中,图片资源可以放在 publicassets 文件夹中,具体取决于你是否需要对图片进行处理。

  • public 文件夹: 适合存放不需要处理的静态资源(如:不需要处理的图片),可以直接通过绝对路径引用。
  • assets 文件夹: 适合存放需要优化和处理的静态资源(如:需要处理的图片),可以通过模块导入的方式引用。

五、结语


通过本文的介绍,相信你对 Vite + Vue3 项目中 publicassets 文件夹的作用以及图片资源的存放和使用方法有了更深入的理解。合理利用这些文件夹,可以有效提升资源加载效率,优化用户体验,为构建高性能的前端项目打下坚实的基础。


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/141188409

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2038041.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如果让你消息队列,该如何设计?说一下你的思路

在当今的分布式系统中&#xff0c;消息队列是一个不可或缺的组件&#xff0c;它在系统解耦、流量削峰、异步处理等方面发挥着重要作用。 如果我要设计一个消息队列&#xff0c;我会从以下几个关键点出发呢&#xff1f; 让我们来探讨一下如何设计一个消息队列的架构。 实现内存…

【MySQL】数据库初识

文章目录 前言一、MySQL的基本结构二、MySQL的组成三、数据库的简单使用数据库操作数据类型认知数值类型字符串类型日期类型 数据库表操作 总结 前言 数据库是一类软件&#xff0c;有MySQL、Oracle、SQL Server、Redis等作为代表&#xff0c;通过数据库能够对数据进行管理和组…

六大热门及两个趋冷的网络安全趋势

AI不仅在改变威胁环境,还在改变安全团队保护其组织的方式,然而,AI并不是网络安全专业人士应该关注的唯一趋势。 在网络安全领域,与其他领域一样,AI和GenAI都是人们关注的焦点,恶意行为者正在利用AI和GenAI创造更具隐蔽性的恶意软件、更具说服力的钓鱼邮件以及更逼真的深…

DevExpress开发WPF应用实现对话框总结:编织界面的艺术之旅

在软件开发的浩瀚星空中&#xff0c;WPF&#xff08;Windows Presentation Foundation&#xff09;以其卓越的界面表现力和丰富的控件库&#xff0c;成为了众多开发者心中的璀璨明珠。而DevExpress&#xff0c;作为WPF领域的佼佼者&#xff0c;更是以其强大的组件库和易于集成的…

大模型时代来临:程序员如何自处,产品经理如何迎接新挑战

一名失业中的程序员&#xff0c;因为一次大胆的求职之举登上了微博热搜。 向瑶函花费999元&#xff0c;在广州地铁珠江新城站购买了一个广告位5天的使用权&#xff0c;用来投放自己的简历二维码&#xff0c;扫码就可以了解这名程序员“飘零的前半生”。 向瑶函是在2023年5月“…

灵巧守门员——代理模式(Java实现)

代理模式不仅在控制对象访问上展现了其独特的优势&#xff0c;还在功能扩展和系统安全性上起到了重要作用。上期我们介绍了代理模式在Python中的实现&#xff0c;今天&#xff0c;我们将继续探讨代理模式&#xff0c;并展示如何在Java中实现它。 什么是代理模式&#xff1f; …

How do you implement OpenAI GPT-3 Api Client in PHP?

题意&#xff1a;如何在 PHP 中实现 OpenAI GPT-3 API 客户端&#xff1f; 问题背景&#xff1a; I need help understanding the vague instructions on https://packagist.org/packages/orhanerday/open-ai 我需要帮助来理解这些模糊的说明... I downloaded the package fr…

PDF转图片新潮流,4款神器告别手动截图

在这个信息爆炸的时代&#xff0c;PDF文件因为能在各种设备上保持格式不变&#xff0c;成了我们学习和工作中的好帮手。今天&#xff0c;我就诚心诚意地给你推荐几款现在特别流行的PDF转图片工具。这些工具操作起来非常简单&#xff0c;转换速度快&#xff0c;而且转换出来的图…

前端工程化工具——plop的使用-生成模板页面

背景 软件列表 软件名称版本号备注vue3.2.13vue-cli5.0.8plop4.0.1 操作步骤 新建vue3工程 vue create test-plop按提示完成操作即可 modules安装工具选择&#xff1a;yarn或npm均可 安装plop模块 yarn add plop -g新建模板文件 page1/index.hbs <template><…

【启动centos报错】另一个程序已锁定文件的一部分,进程无法访问,打不开磁盘.

启动centos报错 另一个程序已锁定文件的一部分&#xff0c;进程无法访问打不开磁盘“D:\Program2\CentOS\CentOS7\CentOS7.vmdk”或它所依赖的某个快照磁盘。模块“Disk”启动失败。未能启动虚拟机。解决方法 删除.lck文件

基于InP的通用光子集成技术(四)

7.ASPIC设计环境 在光子学中引入通用晶圆方法将导致光子芯片复杂度的重大变化&#xff1a;它将把设计从器件级转移到光路级&#xff0c;这一转变发生在20世纪70年代和80年代的微电子中&#xff0c;现在也发生在PIC中。 在通用方法中&#xff0c;可以通过具有许多构建块的PDK访…

数学建模笔记(2):Topsis分析法

一.评价类问题的几个关键词 1.指标 评价一个方案或者对象我们需要有评价指标&#xff0c;即从哪几个方面进行评价。比如评价一个人在保研上的竞争力&#xff0c;我们可以从绩点&#xff0c;课外竞赛&#xff0c;科研成果&#xff0c;学生工作&#xff0c;志愿服务等几个方面来…

Qt QTabWidget之创建标签页的多页面切换

QTabWidget 用来分页显示 重要函数: 1.void setTabText(int, QString); //设置页面的名字. 2.void setTabToolTip(QString); //设置页面的提示信息. 3.void setTabEnabled(bool); //设置页面是否被激活. 4.void setTabPosition(QTabPosition::South); //设置页面名字的位置. 5.…

游标卡尺的使用

游标卡尺的使用注意事项 游标卡尺是比较精密的测量工具&#xff0c;使用时应轻拿轻放&#xff0c;不得碰撞或跌落地下。使用时不要用来测量粗糙的物体&#xff0c;以免损坏量爪。不用时应置于干燥地方防止锈蚀。测量工件时&#xff0c;卡脚测量面必须与工件的表面平行或垂直&a…

1915_开源C语言实现的通用队列

经常在工作中遇到一些队列处理的场景&#xff0c;以前要么是借用FreeRTOS这样的系统中的相关功能&#xff0c;要么是通过数组做一个简单的队列模型。但是&#xff0c;这两种方案都具有一定的局限性能&#xff0c;前者要求的FreeRTOS不见得相应的软件中有&#xff0c;而后者只能…

【C++】什么是模板?

有不懂的地方可以翻阅我之前文章&#xff01; 个人主页&#xff1a;CSDN_小八哥向前冲 所属专栏&#xff1a;CSDN_C入门 目录 模板函数 泛型编程 函数模板 类模板 模板函数 泛型编程 在之前的学习里&#xff0c;我们知道函数可以重载&#xff0c;当我们在实现多参数函数交…

【2.2】回溯算法-解含有重复数字的全排列 II

一、题目 给定一个可包含 重复数字 的序列nums&#xff0c;按任意顺序返回所有不重复的全排列。 二、求解思路及代码实现 回溯算法思路&#xff1a; 这道题目与之前讨论的全排列问题类似&#xff0c;但有一个关键的区别&#xff1a;本题中数组包含重复的数字&#xff0c;而之前…

Springboot集成Proguard生成混淆jar包

背景 当我们需要将 JAR 包交付给第三方时&#xff0c;常常担心代码可能会被反编译。因此&#xff0c;对 JAR 包进行混淆处理显得尤为重要。 市面上有许多 JAR 包源码混淆工具&#xff0c;但真正能稳定投入使用的并不多。例如&#xff0c;ClassFinal (ClassFinal: Java字节码加…

C++类和对象1

一.类的定义 1.1类的创建 类是C中用户自己建立的类型。类似于C语言中的结构体。定义类的关键字为class。格式为&#xff1a; class 类名 {成员函数成员变量…… }; class 类名称为类头&#xff0c;花括号中的称为类体。类的声明以花括号后的分号结束&#xff0c;分号不可省…

Go-Zero微服务框架下开发接口流程

目录 一&#xff1a;定义api入参和返回值 二&#xff1a;生成入参和返回值文件 三&#xff1a;定义rpc参数和返回值 四&#xff1a;生成返回值和参数 五&#xff1a;定义数据库 六&#xff1a;生成数据库文件 今天我们来讲解下如何在Go-Zero下开发一个api接口的具体流程&…