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

vue3 HTML 和静态资源

目录

静态资源可以通过两种方式进行处理: 

URL 转换规则

public 文件夹

何时使用 public 文件夹

public/index.html 文件是一个会被 html-webpack-plugin 处理的模板。在构建过程中,资源链接会被自动注入。另外,Vue CLI 也会自动注入 resource hint (preload/prefetch、manifest 和图标链接 (当用到 PWA 插件时)) 以及构建过程中处理的 JavaScript 和 CSS 文件的资源链接

静态资源可以通过两种方式进行处理: 

  • 在 JavaScript 被导入或在 template/CSS 中通过相对路径被引用。这类引用会被 webpack 处理。

  • 放置在 public 目录下或通过绝对路径被引用。这类资源将会直接被拷贝,而不会经过 webpack 的处理。

从相对路径导入
当你在 JavaScript、CSS 或 *.vue 文件中使用相对路径 (必须以 . 开头) 引用一个静态资源时,该资源将会被包含进入 webpack 的依赖图中。在其编译过程中,所有诸如 <img src="...">、background: url(...) 和 CSS @import 的资源 URL 都会被解析为一个模块依赖

例如:
url(./image.png) 
会被翻译为 
require('./image.png'),
而:
<img src="./image.png">
将会被编译到:
h('img', { attrs: { src: require('./image.png') }})

在其内部,我们通过 file-loader 用版本哈希值和正确的公共基础路径来决定最终的文件路径,再用 url-loader 将小于 4kb 的资源内联,以减少 HTTP 请求的数量。

你可以通过 chainWebpack 调整内联文件的大小限制。

URL 转换规则

  • 如果 URL 是一个绝对路径 (例如 /images/foo.png),它将会被保留不变。

  • 如果 URL 以 . 开头,它会作为一个相对模块请求被解释且基于你的文件系统中的目录结构进行解析。

  • 如果 URL 以 ~ 开头,其后的任何内容都会作为一个模块请求被解析。这意味着你甚至可以引用 Node 模块中的资源:

<img src="~some-npm-package/foo.png">
  • 如果 URL 以 @ 开头,它也会作为一个模块请求被解析。它的用处在于 Vue CLI 默认会设置一个指向 <projectRoot>/src 的别名 @(仅作用于模版中)

public 文件夹


任何放置在 public 文件夹的静态资源都会被简单的复制,而不经过 webpack。你需要通过绝对路径来引用它们。

注意我们推荐将资源作为你的模块依赖图的一部分导入,这样它们会通过 webpack 的处理并获得如下好处:

脚本和样式表会被压缩且打包在一起,从而避免额外的网络请求。
文件丢失会直接在编译时报错,而不是到了用户端才产生 404 错误。
最终生成的文件名包含了内容哈希,因此你不必担心浏览器会缓存它们的老版本。
public 目录提供的是一个应急手段,当你通过绝对路径引用它时,留意应用将会部署到哪里

何时使用 public 文件夹

你需要在构建输出中指定一个文件的名字。
你有上千个图片,需要动态引用它们的路径。
有些库可能和 webpack 不兼容,这时你除了将其用一个独立的 <script> 标签引入没有别的选择。

http://www.lryc.cn/news/62382.html

相关文章:

  • 5G基站外市电改造建设方案 (ppt可编辑)
  • C++ 类和对象(上)
  • 【BIM+GIS】BIM模型导入GIS软件之前的一些处理设置
  • js FileReader的常用使用方法
  • 网络威胁情报:数据的力量
  • shell:清理指定目录中指定天数之前的旧文件
  • 想入门网络安全?先来看看网络安全行业人才需求!
  • 0424 spring AOP学习
  • GB/T 28181-2022 新版差异笔记
  • 以轻量级服务器niginx为核心的JavaWeb项目:第一章 项目设计
  • 【error】 Request method ‘GET‘ not supported app端调用后台接口报错,后台人员自己调用时没问题
  • Microsoft Bitlocker企业级管理部署方案
  • Jetpack Compose 中使用分页 API 调用的无限滚动
  • 第5章 数据结构之“链表”
  • SpringMVC - REST风格介绍已经RESTful简化开发
  • Android 10.0 user模式下解除系统进入recovery功能的限制
  • 用这些 JavaScript 试题来提高你的编程技能
  • 倾斜摄影超大场景的三维模型在网络发布应用遇到常见的问题浅析
  • 基于遗传算法的梯级水电站群优化调度研究(Matlab代码实现)
  • java每日问题
  • C++设计模式之 依赖注入模式探索
  • 如何实现Spring AOP以及Spring AOP的实现原理
  • 数学建模——数据预处理
  • 第8章:树
  • Java基础学习(10)
  • Tomcat多实例部署实验
  • 无良公司把我从上家挖过来,白嫖了六个月,临近试用期结束才说不合适,催我赶紧找下家!...
  • 忙碌中也要记得休息,这两款好玩的游戏推荐给你
  • 四种方法可以实现判断字符串包含某个字符
  • ubuntu进程相关command