当前位置: 首页 > news >正文

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

日期: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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 安装postgresql和PGVector
  • Linux线程基础学习记录(线程的创建、回收以及结束)
  • C#中的S7协议
  • 【计算机网络】应用层自定义协议与序列化
  • 批量查询全国快递单号:高效追踪物流信息
  • HarmonyOS应用开发学习-ArkUI-容器组件
  • springboot的学习(二):常用配置
  • 【算法 04】汉诺塔递归求解和通式求解
  • 【Linux基础】Linux中的开发工具(1)--yum和vim
  • 【学习笔记】Day 11
  • C++11中的左右值引用(略带复习)
  • PyTorch 基础学习(1) - 快速入门
  • 从零开始搭建 LVS 高性能集群 (DR模式)
  • JAVA中的对象流ObjectInputStream
  • uniapp实现自定义弹窗组件,支持富文本传入内容
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • co.js - 让异步代码同步化
  • Cumulo 的 ClojureScript 模块已经成型
  • flutter的key在widget list的作用以及必要性
  • js ES6 求数组的交集,并集,还有差集
  • LeetCode18.四数之和 JavaScript
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 给第三方使用接口的 URL 签名实现
  • 关于使用markdown的方法(引自CSDN教程)
  • 前端性能优化--懒加载和预加载
  • 强力优化Rancher k8s中国区的使用体验
  • 数据仓库的几种建模方法
  • 双管齐下,VMware的容器新战略
  • AI算硅基生命吗,为什么?
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​水经微图Web1.5.0版即将上线
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • # centos7下FFmpeg环境部署记录
  • # 消息中间件 RocketMQ 高级功能和源码分析(七)
  • # 移动硬盘误操作制作为启动盘数据恢复问题
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (2.2w字)前端单元测试之Jest详解篇
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (7) cmake 编译C++程序(二)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (ros//EnvironmentVariables)ros环境变量
  • (二)正点原子I.MX6ULL u-boot移植
  • (二)丶RabbitMQ的六大核心
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (蓝桥杯每日一题)love
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十六)一篇文章学会Java的常用API
  • (转) 深度模型优化性能 调参
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • .bat批处理(一):@echo off