
通过符号链接将挂载的 Blob 存储目录(如 /nfsdata)映射到 Web 服务根目录(如 /var/www/html)下,即可像访问本地静态资源一样在 HTML 中直接引用其文件。
通过符号链接将挂载的 blob 存储目录(如 `/nfsdata`)映射到 web 服务根目录(如 `/var/www/html`)下,即可像访问本地静态资源一样在 html 中直接引用其文件。
当您使用 Azure Blob Storage 并通过 NFS(如 blobfuse2)将其挂载为本地目录(例如挂载至 /nfsdata)时,该目录在操作系统层面确实表现为一个“本地路径”——但Web 服务器(如 Apache 或 Nginx)仅能提供其 DocumentRoot(文档根目录)及其子目录下的文件。即使 /nfsdata 是可读的系统路径,只要它不在 /var/www/html 下,浏览器发起的 HTTP 请求就无法被服务器解析和响应,因此 <img src="/nfsdata/image.jpg"> 必然返回 404。
✅ 正确做法是创建指向挂载点的符号链接,将其“纳入” Web 根目录结构:
# 确保挂载已就绪 ls -l /nfsdata # 应可见您的 blob 文件 # 进入网站根目录并创建符号链接(需有写权限) cd /var/www/html/website sudo ln -sf /nfsdata nfsdata
执行后,目录结构变为:/var/www/html/website/nfsdata → /nfsdata(符号链接)
此时即可在 HTML 中安全引用:
<img src="nfsdata/image.jpg" alt="Blob-stored image"><!-- 或带子路径 --><script src="nfsdata/js/app.js"></script>
⚠️ 注意事项:
-
权限至关重要:确保 Web 服务器用户(如
www-data或nginx)对/nfsdata及其内容具有rx(读+执行)权限;可运行sudo chmod -R o+rx /nfsdata(生产环境建议用更精细的 ACL 或组权限控制)。 - 挂载持久性:重启后 blobfuse2 挂载可能失效,请配置为开机自动挂载(如 systemd service),否则符号链接将“悬空”,导致 403/404。
-
不推荐直接修改 DocumentRoot:虽可通过修改 Apache/Nginx 配置将
Alias /nfsdata "/nfsdata"映射,但符号链接方式更轻量、无需重载服务、兼容所有静态服务器,且符合 Unix 哲学。
总结:挂载的 Blob 目录是本地路径,但不是 Web 路径;符号链接是打通二者最简洁、标准且可维护的方案。










