VuePress V1 踩坑记录

news2025/1/16 15:01:40

文章目录

  • 前言
  • 1.Node.js 版本问题
  • 2.侧边栏
  • 3.添加页面目录导航
  • 4.非首页 footer 不生效
  • 5.部署到 Github 的错误
    • vuepress 的 docs 与 Github Pages 的 docs 目录冲突
    • 样式丢失
  • 7.资源引用问题
    • 本地图片找不到
    • 引用 CSDN 图片报 403 错误
  • 参考文献

前言

我的第二本开源电子书《后台开发命令 365》上线啦。

使用 VuePress 将之前记录的后台常用 Linux 命令博文整理成一个系统的开源电子书,方便阅读,希望能够帮到大家。

初次使用 VuePress,期间遇到了不少问题,特记录下来。

1.Node.js 版本问题

使用vuepress dev docs在本地启动服务器时报了如下错误:

Error: error:0308010C:digital envelope routines::unsupported

我用的 Node.js 版本 v18.16.0 报了上面的错误,原因是 Node.js 版本过高导致,需要将 Node.js 版本降低至 v16.x.x,比如 Node.js 16.20.0。

2.侧边栏

在 VuePress 的侧边栏分组配置中,children 的路径是相对于 docs 目录的路径,而不是相对于分组的路径。

比如有个文档路径为 docs/foo/bar.md,那么其配置如下:

// .vuepress/config.js
module.exports = {
  themeConfig: {
    sidebar: [
      {
        title: 'Group 1',      // 必要的
        path: '/foo/',         // 可选的, 标题的跳转链接,应为绝对路径且必须存在
        collapsable: false,    // 可选的, 默认值是 true,
        sidebarDepth: 1,       // 可选的, 默认值是 1
        children: ['/foo/bar'] // 必要的,如果为空,则不应该使用分组
      }
    ]
  }
}

注意,如果不显示指定链接文字,侧边栏显示的是文档的一级标题(H1)。

如果想显示地指定链接文字,使用一个格式为[path, text]的数组。

// .vuepress/config.js
module.exports = {
  themeConfig: {
    sidebar: [
      {
        title: 'Group 1',    // 必要的
        path: '/foo/',       // 可选的, 标题的跳转链接,应为绝对路径且必须存在
        collapsable: false,  // 可选的, 默认值是 true,
        sidebarDepth: 1,     // 可选的, 默认值是 1
        children: [
          ['/foo/bar', 'bar'] // 显示指定标题为 bar 而不是 /foo/bar.md 的一级标题
        ]					// 必要的,如果为空,则不应该使用分组
      }
    ]
  }
}

3.添加页面目录导航

在页面右上角添加页面目录导航栏,目的是简化左侧边栏结构的同时不丢失页面内标题导航的功能。

官方推荐的 Awesome VuePress 仓库收录的 vuepress-plugin-right-anchor 可以达到类似的效果。

注意 vuepress-plugin-right-anchor 缺省情况下目录是折叠的,需要修改配置

expand: {
	trigger: 'hover'
}

expand: {
	trigger: 'click'
}

示例效果如下:

在这里插入图片描述

有了右侧的页面目录导航,那么我们便可以将侧边栏分组下的标题设置为只显示 H1,即将 themeConfig.sidebarDepth 设置为 0。

也可以使用 YAML front matter 来为某个页面重写此值:

---
sidebarDepth: 0
---

4.非首页 footer 不生效

VuePress 支持使用 Markdown Slot Syntax 来设置 footer,以支持富文本:

---
home: true
---

::: slot footer
MIT Licensed | Copyright © 2018-present [Evan You](https://github.com/yyx990803)
:::

当页面不是首页时,即没有开头 Front Matter 的home: true配置,那么 footer 将不生效。

一个简单的解决办法是通过 HTML 标签,比如<p>便可添加并居中显示想要的页脚。

<p align=center>
MIT Licensed | Copyright © 2018-present [Evan You](https://github.com/yyx990803)
</p>

我的页脚设置如下:

<p align=center style="font-size:13px;color:gray">
CC BY-NC 4.0 Licensed | Copyright © 2023-present Dable Lv
</p>

效果如下:
在这里插入图片描述

5.部署到 Github 的错误

vuepress 的 docs 与 Github Pages 的 docs 目录冲突

VuePress 默认将文档放置在项目根目录下的 docs 目录中,用于生成静态网站。它使用了一些特定的文件和目录结构,如 README.md 作为主页、.vuepress 目录用于配置等。

而 Github Pages 站点根目录可选的路径有两个,根目录 / 和 /docs。

在这里插入图片描述

如果将我们生成的静态站点内容平铺到仓库的根目录,那么会使仓库的内容显得非常凌乱。所以我们一般使用 /docs 目录。

为了解决这个冲突,我们可以将更改 VuePress 的文档目录,将 VuePress 的 docs 更名为 vuepress-docs 或者其他你喜欢的名称。需要注意的是,package.json 中的 scripts 也要做相应的修改。

{
  "name": "vuepress",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "docs:dev": "vuepress dev vuepress-docs",
    "docs:build": "vuepress build vuepress-docs"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "vuepress": "^1.9.9",
    "vuepress-plugin-right-anchor": "^0.5.5"
  }
}

样式丢失

看了一下页面的 element,报了很多资源 404 的错误,所以样式丢失的原因是找不到 js 和 css 等资源。

资源加载失败,基本都是路径出了问题。查看 dist/index.html 文件可以看到,资源路径都写的是根目录下 /。

在这里插入图片描述

在 VuePress 的官方网站中, 对 config.js 中的 base 做了说明。

部署站点的基础路径,如果你想让你的网站部署到一个子路径下,你将需要设置它。如 GitHub pages,如果你想将你的网站部署到 https://foo.github.io/bar/,那么 base 应该被设置成 “/bar/”,它的值应当总是以斜杠开始,并以斜杠结束。

base 将会作为前缀自动地插入到所有以 / 开始的其他选项的链接中,所以你只需要指定一次。

所以我们修改一下 base 即可。

比如我的站点访问路径是https://dablelv.github.io/backend-cmd/,那么 base 应该配置为/backend-cmd/

module.exports = {
  title: "后台开发命令 365",
  description: "后台开发常用命令介绍",
  base: "/backend-cmd/"
}

7.资源引用问题

本地图片找不到

markdown 文件中引用的图片,我们可以将其统一放置到 assets/imgs 目录中,引用时我写了的路径如下:

![这里写图片描述](/assets/imgs/expand/1.png)

本地预览时发现图片无法显示,原因是路径写的有问题。

官方指南对静态资源的引用已经给出说明。

所有的 Markdown 文件都会被 webpack 编译成 Vue 组件,因此你可以,并且应该更倾向于使用相对路径(Relative URLs)来引用所有的静态资源:

![An image](./image.png)

引用 CSDN 图片报 403 错误

我的博客首发在 CSDN,通过 VuePress 整理成文档网站时,很多图片引用自 CSDN,但是出现 403 错误无法正常显示。

由于 vuepress 生成的静态网站在拉取 CSDN 图片时,把当前网站的 referrer 带了过去,第三方发现不是本站的请求,所以直接返回 403 错误。

在 config.js 中添加 meta 标签,去掉 referrer。

module.exports = {
  ...
  head: [
    ['meta',{name: 'referrer',content: 'no-referrer'}]
  ],
  ...
}

参考文献

VuePress
Global Footer in Default Theme #339 - vuejs/vuepress - GitHub
vuepress2.0避坑指南 - 墨滴

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

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

相关文章

Raft集群变更:This article is all your need

Background 为了变化raft集群&#xff0c;我们可以选择&#xff1a;.停在旧配置&#xff0c;然后再上线新配置 。但是这个会导致整个集群变得不可用&#xff0c;同时手动修改也会到来问题。 所以我们采用热变更 这也导致了安全性的问题&#xff0c;变更过程有可能导致两个le…

miniconda安装+pycharm安装

miniconda安装pycharm安装 1.miniconda安装2.pycharm安装3.pycharm环境配置 1.miniconda安装 miniconda下载路径&#xff1a;https://docs.conda.io/en/latest/miniconda.html 打开后选择对应的电脑系统及python版本下载 下载完成后双击运行 选择安装路径&#xff0c;记住安装…

SpringCloud Eureka 的详细讲解及示意图

目录 SpringCloud Eureka 服务注册与发现 Spring Cloud 组件选型- 图 当前项目架构问题分析-引出Eureka 一图胜千言 问题分析 引入Eureka 项目架构 解读上图 Eureka采用了 CS 的设计架构&#xff0c; 创建单机Eureka Server-注册中心 创建e-commerce-eureka-server-90…

【深度学习】- 作业3: CIFAR10图像分类

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

【数据结构与算法】- 周测三

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

【瑞萨RA_FSP】UART 编程实战

文章目录 一、UART收发回显二、UART指令控制RGB灯三、基于环形队列的UART收发回显 一、UART收发回显 UART只需两根信号线即可完成双向通信&#xff0c;对硬件要求低&#xff0c;使得很多模块都预留UART接口来实现与其他模块或者控制器进行数据传输&#xff0c; 比如GSM模块&am…

【Unity3D】反射和折射

1 前言 立方体纹理&#xff08;Cubemap&#xff09;和天空盒子&#xff08;Skybox&#xff09;中介绍了生成立方体纹理和制作天空盒子的方法&#xff0c;本文将使用立方体纹理进行采样&#xff0c;实现反射和折射效果。 立方体纹理采样原理&#xff1a;从世界坐标系的坐标原点出…

深入printf

目录 printf的定义 printf的使用 函数说明 说明符&#xff08;specifier&#xff09; flags&#xff08;标志&#xff09; width&#xff08;最小宽度&#xff09; .precision&#xff08;精度&#xff09; length&#xff08;类型长度&#xff09; 转义序列 printf的…

linux(软硬链接)

目录&#xff1a; 1.软连接 2.硬链接 ----------------------------------------------------------------------------------------------------------------------------- 1.软连接 linux当中有两个概念&#xff0c;一个是软连接&#xff0c;一个是硬链接&#xff0c;在学习…

Golang每日一练(leetDay0074) 词典类设计、单词搜索II

目录 211. 添加与搜索单词 - 数据结构设计 Design-add-and-search-words-data-structure &#x1f31f;&#x1f31f; 212. 单词搜索 II Word Search ii &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Rust每日一练 专栏 Golan…

基于C#和Blazor开发的前后端分离框架

Known是基于C#和Blazor开发的前后端分离快速开发框架&#xff0c;开箱即用&#xff0c;跨平台&#xff0c;一处代码&#xff0c;多处运行。 开源地址 https://gitee.com/known/Known 开发环境 .NET 7VS2022 概述 基于C#和Blazor实现的快速开发框架&#xff0c;前后端分离…

【深度学习】- 作业4: 脑部MRI(核磁共振)图像分别

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

【数据结构与算法】- 周测四

课程链接: 清华大学驭风计划 代码仓库&#xff1a;Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的&#xff0c;其分为四门课&#xff0c;包括: 机器学习(张敏教授) &#xff0c; 深度学习(胡晓林教授), 计算…

三、尚医通医院管理实现

文章目录 三、医院管理实现1、医院列表1.1 医院列表api接口1.1.1 添加service分页接口与实现1.1.2 添加controller方法 1.2 service-cmn模块提供接口1.2.1添加service接口与实现1.2.2添加controller方法 1.3封装Feign服务调用1.3.1搭建service-client父模块1.3.2 搭建service-c…

微生物实验之分菌(细菌)

文章目录 1. 采集实验样本2. 对实验样本进行处理1. 土壤样本的处理2. 植物内生菌样本的处理 3. 接种4. 分离纯化5. 测16s6. 测全基因组7. 保藏菌株 分离细菌菌株 (分菌) 是微生物学实验中&#xff0c;很重要的一环&#xff0c;对于微生物资源来说尤为重要。分菌主要包含以下几个…

人工智能CNN 卷积神经网络结构(tensorflow代码实现)

MNIST是一个简单的视觉计算数据集,它是像下面这样手写的数字图片: MNIST 通过上期的分享,我们了解了手写数字识别的基本原理以及CNN卷积神经网络的基本原理,本期我们结合MNIST数据集,来用代码来实现CNN。(手写数字识别是TensorFlow人工智能最基础的案例,这个跟学习编程…

删除表单(form)元素中的某一个数据项操作实现

问题 对于表单&#xff08;form&#xff09;元素&#xff0c;只支持POST请求。若是需要删除表单&#xff08;form&#xff09;元素中的某一个数据项&#xff0c;最为严谨的方式是采用POST请求&#xff0c; 对于表单元素&#xff0c;如何转换为DELETE请求 详细问题 对于表单元…

AC规则-2

基于RAM的远程接口 安全元件的访问规则可以通过远程应用程序管理 (RAM) 更新命令进行管理。 因此&#xff0c;ARA-M 和 ARA-C 各自提供一个远程接口&#xff0c;允许在 ARA 中存储或删除访问规则。 访问控制数据的任何远程管理都应仅通过 [GP 卡规范] 定义的安全通道协议来完成…

『树莓派云台机器人』01. 使用手机控制机器人

目录 1. 检查是否已经开机&#xff0c;连接机器人wifi2. 安装树莓派控制app应用&#xff0c;直连模式连接机器人3. 机器人功能实现总结 欢迎关注 『树莓派云台机器人』 博客&#xff0c;持续更新中 欢迎关注 『树莓派云台机器人』 博客&#xff0c;持续更新中 动手组装等步骤请…

chatgpt赋能Python-python_erode

Python Erode&#xff1a;用Python实现图像腐蚀 图像处理是人工智能领域的重要分支&#xff0c;Python是一种广泛应用于机器学习和深度学习的编程语言&#xff0c;也是图像处理领域的主要开发语言之一。在Python中&#xff0c;我们可以使用许多不同的库和工具来处理图像。其中…