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 文件,想到一个用途就是用它来搭建知识文档库。

相关推荐
你真的快乐吗6 小时前
@fuxishi/svg-icon:一个 Vue 3 svg本地图标+iconify图标组件库,让图标管理不再头疼
前端·vue.js·typescript
吴声子夜歌7 小时前
Vue3——脚手架Vite
前端·javascript·vue.js·vite
rADu REME8 小时前
SpringBoot + vue 管理系统
vue.js·spring boot·后端
被考核重击9 小时前
Vue响应式原理(下)
前端·javascript·vue.js
前端摸鱼匠20 小时前
Vue 3 的v-bind合并行为:讲解v-bind与普通属性合并的规则
前端·javascript·vue.js·前端框架·ecmascript
Python私教1 天前
Pure-Admin-Thin 深度解析:完整版和精简版到底怎么选?
vue.js·人工智能·开源
ayqy贾杰1 天前
Cursor SDK发布!开发者可直接搬走其内核
前端·vue.js·面试
李白的天不白1 天前
vue 数据格式问题
前端·vue.js·windows
小白蒋博客1 天前
【ai开发段永平投资理财的知识图谱网站】第一天:搭 Vite + Vue 项目,跑通 Hello World
vue.js·人工智能·trae
@yanyu6662 天前
登录注册功能-明文
vue.js·springboot