IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vite 静态文件处理总结 -> 正文阅读

[JavaScript知识库]vite 静态文件处理总结

以新建原生JavaScript项目为例
?

yarn create vite my-vue-app --template vanilla

会自动生成一个 public 文件夹,要注意vite官方文档里的几点:

如果你有下列这些资源:

?1. 不会被源码引用(例如 robots.txt)
?2. 必须保持原有文件名(没有经过 hash)
?3. ...或者你压根不想引入该资源,只是想得到其 URL。

请注意:

?1. 引入 public 中的资源永远应该使用根绝对路径 —— 举个例子,public/icon.png 应该在源码中被引用为 /icon.png
?2. public 中的资源不应该被 JavaScript 文件引用

---------------------------------------干货分割线----------------------------------------
?
?以我常做的H5项目为例:?

希望发布后的目录当前开发目录

index.html
share.jpg

assets/ 文件夹

img/ 图片文件夹

public/

index.html

index.css

main.js

vite.config.js

……

?直接写结论:

发布后目录调整后的开发目录

index.html
share.jpg

assets/ 文件夹

img/ 图片文件夹

public/

? ? ? ? img/ 数据里引用的不希望改变文件名的图片文件

? ? ? ? share.jpg?

src/

? ? ? ? assets/ 字体、常用的logo文件等

? ? ? ? img/ 图片文件

index.html

index.css

main.js

vite.config.js

……

我新建了src目录放我们的图片、字体等资源文件,而 public里的img里放的是不想改变名称的图片文件,一般是在js或json数据里调用的图片路径;

src/img/?和 src/assets/下的文件,vite build 后,都会被加了hash(如:bgimg.2509af0e.jpg)后放入 dist/assets/ 里,初学者一般到这就不太理解了:因为发布目录里并不会一一对应我自建的src下的目录,而public下的目录和文件会被完整copy到dist下。

index.html 里的引用路径:

<!-- 在 src/img 里的普通图片、媒体文件,用相对路径 -->
<img src="./src/assets/logo.png" alt="" class="logo">
<img src="./src/img/g05.jpg" alt="">
<audio src="./src/assets/bgm.mp3" preload="auto" loop autoplay></audio>

<!-- 不想改变文件名的文件,在public下,用绝对路径 -->
<img src="/img/o2.png" alt="" />

index.css里的引用路径:都放入src/img/ 就可以了

@font-face {
    font-family: 'hy1';
    src: url('./src/assets/HY1.woff') format('woff'),
        url('./src/assets/HY1.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

.cover {
    position: absolute; left: 0; top: 0; width: 100%;  height: 100vh; z-index: 10;
    background: transparent url("./src/img/cbg.jpg") no-repeat center center;
    background-size: cover;
}

.icon {
    display: block;
    width: 90px; height: 90px;
    background: url(./src/img/icon-bg.png) repeat 0 0;
    background-size: 100%;
}

index.js里的引用路径:我们遵守上面提到的:“public中的资源不应该被 JavaScript 文件引用”

// js里要导入图片实例就放入 src/img/ 
import a1img from './img/a1.jpg';

// 数据里要用到的文件,不希望改变文件名,就放入 public/img/
let data = [
    {
        "num": "8",
        "date": "2022年2月18日",
        "name": "谷爱凌",
        "desc": "女子自由式滑雪U型场地技巧",
        "icon":"./img/a1.png"
    },
    ......
]

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-10 22:22:38  更:2022-03-10 22:25:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:48:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码