You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将VitePress部署到Azure静态Web应用并配置Base URL?

解决VitePress部署到Azure静态Web应用的路径匹配问题

问题根源

你设置VitePress的base: '/web/myapp'后,构建产物里的资源引用路径都是/web/myapp/assets/xxx,但Azure静态Web应用把docs/.vitepress/dist作为部署根目录,实际资源存放在根目录的/assets下,导致页面请求/web/myapp/assets/xxx时返回404。

解决方案

提供两种可行的解决思路:

方法一:调整VitePress构建输出结构,匹配Azure部署路径

  1. 修改VitePress配置文件(docs/.vitepress/config.js),指定构建输出目录为../dist/web/myapp,让产物自动生成web/myapp子目录:
export default {
  base: '/web/myapp/',
  build: {
    outDir: '../dist/web/myapp'
  }
}
  1. 重新执行本地构建命令npm run docs:build,此时docs/dist/web/myapp目录下会包含index.html和assets文件夹。
  2. 更新Azure静态Web应用的配置:
app_location: "docs/dist/web/myapp"
skip_app_build: true

这样Azure会把web/myapp目录下的内容作为部署根,访问http://xxxxx/web/myapp/index.html时,资源路径/web/myapp/assets/xxx会对应到部署目录下的assets文件夹,加载正常。

方法二:通过Azure路由配置映射路径

如果不想调整构建输出结构,可以通过Azure静态Web应用的路由规则来适配路径:

  1. 在docs/.vitepress/dist目录下创建staticwebapp.config.json文件,添加路由映射规则:
{
  "routes": [
    // 把/web/myapp下的所有资源请求映射到根目录对应路径
    {
      "route": "/web/myapp/*",
      "serve": "/{path}"
    },
    // 处理根路径跳转
    {
      "route": "/web/myapp",
      "serve": "/index.html"
    }
  ]
}
  1. 保持原有的Azure和VitePress配置不变,重新部署即可。此时Azure会自动将/web/myapp开头的请求映射到根目录的对应文件,资源就能正确加载。

内容的提问来源于stack exchange,提问作者Kai021195

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 09:37:27