vuepress 打包后左侧菜单链接 404 问题

背景

上周看到一本开源书 《深入架构原理与实践》,是基于 vuepress 搭建的,下载了源码,本地部署了一下,本文记录如何打包该源码遇到的路径问题及思考。

结论: vuepress 插件的 sideBar 的菜单路径默认是相对 / 的,并且是由 .vuepress/config.jsbase 属性控制,打包时需要按需要修改,开发环境下不能设置

环境准备

  1. node 18.0.0,版本过低的话,需要先安装版本管理工具 n ,再执行 n 18.0.0 安装合适的版本。
  2. yarn
  3. Tomcat
  4. Git

下载源码,执行安装和打包操作:

  1. git clone github.com/isno/theByt... && cd theByteBook
  2. yarn install
  3. yarn dev
  4. yarn build

直接用源码打包后在 .vuepress 目录下生成 dist 文件夹,就是开源书《深入架构原理与实践》的静态资源。

应用部署

该项目默认的静态文件路径是相对于 / 的,直接将 build 后的静态目录 dist 放到 tomcat/webapps 下访问,会出现 404,页面的静态资源路径都不正确,有两种解决方法。

第一种 ,直接把 dist 重命名为 ROOT ,作为 tomcat 的根应用后,就能正常访问了。 第二种,修改 vue 打包路径的 publicpath 和 vuepress 配置的 base 属性。

第一步,在工程的根目录、与 package.json 同级别的目录下,创建一个名为 vue.config.js 的打包配置文件,输入配置内容:

js 复制代码
module.exports = {
 publicpath: './',
 assetsdir: 'static',
 parallel: false
}

第二步,进入 .vuepress 目录,修改 config.js 在配置开头添加一个 base 属性,感谢《这篇文章》 的启发,试了一下果然可以。

重新执行 yarn build 打包后,直接将 dist 放到 tomcat 的 webapps 下访问首页正常:

个人思考

第一点 ,是关于 vuepress 插件的,它配置的 sideBar 的菜单路径默认是相对 / 的,它是由 .vuepress/config.jsbase 属性控制的:

如果应用部署的时候不是 ROOT 根目录的话,就需要配置这个路径与发布的应用目录名称一致,这里是 dist : 第二点,用 vuepress 搭建个人博客还是挺不错的,一个配置文件就搞定了,只需要专注编写内容的 md 文件,想到一个用途就是用它来搭建知识文档库。

相关推荐
独泪了无痕2 小时前
viewer.js 安装与配置指南:实现图片预览功能
前端·vue.js
lemon_yyds11 小时前
uVIew2 弹框滚动穿透问题-[uu-popup ]组件
vue.js
超爱吃香菜的菜鸟12 小时前
关于pnpm 部分使用(一)
前端·vue.js
jingchao199816 小时前
Cannot read properties of null (reading ‘insertBefore‘)
前端·javascript·vue.js
猫不易1 天前
从 Virtual DOM 到 Vapor:Vue 3.6 的另一条路
前端·vue.js
岁岁种桃花儿1 天前
Vue核心语法第十二篇:条件渲染
前端·javascript·vue.js
雪碧聊技术2 天前
Vue + Element Plus 实现文本溢出显示省略号及悬浮提示
前端·javascript·css·vue.js·文本溢出省略
Highcharts.js2 天前
Highcharts 主流前端框架无缝集成指南
前端·vue.js·前端框架·highcharts·可视化图表
岁岁种桃花儿2 天前
Vue核心语法第十一篇:绑定样式
前端·javascript·vue.js
大龄码农有梦想2 天前
Vue + BPMN.js + Camunda:搭建企业级流程设计器完整实践
javascript·vue.js·流程设计器·bpmn.js·bpmn·流程审批·工作流设计器