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

Azure Function Proxies 静态站点路由异常:BlobNotFound错误排查

解决Hugo静态站托管Blob存储时子页面404的问题

我之前部署Hugo静态站到Blob存储时,也碰到过完全一样的坑!根路径能正常打开,但一点子页面链接就跳BlobNotFound,明明对应的index.html Blob就在那里,问题确实出在proxies.json的路由配置上。

问题本质

Hugo生成的子页面(比如/about/)实际对应的Blob是about/index.html,但Blob存储的默认路由规则会把/about/的请求直接解析为查找名为about的Blob(而不是about/index.html),这就导致了明明文件存在却报找不到的错误。

正确的proxies.json配置

你需要在Blob存储的根容器(和站点根目录的index.html同位置)创建proxies.json文件,配置路由规则让非静态资源的请求自动转发到对应路径的index.html:

{
  "routes": [
    {
      "route": "/[^.]+$",
      "serve": "{route}/index.html",
      "statusCode": 200
    }
  ]
}

配置说明

  • route: 匹配所有没有文件后缀的路径(比如/about、/posts/my-post),这样不会影响CSS、JS、图片等静态资源的正常访问。
  • serve: 使用{route}变量动态拼接对应的index.html路径,比如请求/about会转发到/about/index.html,完全匹配Hugo的静态文件结构。
  • statusCode: 设置为200确保返回正常的成功状态码。

额外注意事项

  1. 检查内容类型: 确保proxies.json的Blob内容类型设置为application/json,否则Blob存储不会识别这个配置文件。
  2. Hugo配置优化: 在Hugo的config.toml里设置baseURL = "/"和relativeURLs = true,生成相对路径的链接,避免绝对路径导致的路由问题。
  3. 大小写敏感: Blob存储是区分大小写的,确保Hugo生成的文件名和页面链接的大小写完全一致(比如不要出现链接是/About但Blob是about/index.html的情况)。

这样配置后,再点击子页面链接应该就能正常访问了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:14:26