能否在单个Azure存储账户中通过子文件夹托管多个静态网站?
单存储账户托管多个独立静态站点的实现方案
该需求完全可实现,无需额外创建存储账户,仅基于现有$web容器的目录结构即可完成配置。
前置校验
- 确认$web容器内的文件结构符合要求:
- 根目录存放第一个静态应用的所有资源(html、js、css、图片等),入口文件为
rl_bi.htm SecondStaticApp文件夹内存放第二个静态应用的全量资源,其入口文件rl_bi.htm放在该文件夹根路径下
- 根目录存放第一个静态应用的所有资源(html、js、css、图片等),入口文件为
- 确认第二个静态应用的所有内部资源引用均使用相对路径,不要写死根路径的绝对地址,避免资源加载失败。例如引用同目录下的js文件需写
./main.js,不要写/main.js
访问配置
纯静态页面场景(无前端路由)
无需额外修改存储账户的静态网站配置,直接拼接路径即可访问:
- 第一个站点访问地址:
https://<你的存储账户静态网站域名>/(需提前在存储账户静态网站配置页,将「索引文档名称」设置为rl_bi.htm) - 第二个站点访问地址:
https://<你的存储账户静态网站域名>/SecondStaticApp/rl_bi.htm
单页应用场景(使用history模式前端路由)
如果第二个应用是Vue、React等使用history路由模式的单页应用,因单个存储账户仅支持配置一个全局错误回退页,可选择以下两种方案之一:
- 方案一:将第二个应用的路由模式改为hash模式,无需额外配置即可正常访问
- 方案二:在存储账户前绑定CDN,通过CDN的规则引擎为
/SecondStaticApp/*路径单独配置重写规则,将所有该路径下的请求回退到/SecondStaticApp/rl_bi.htm即可
权限说明
$web容器的默认访问权限已支持子目录资源的静态访问,无需为SecondStaticApp文件夹单独配置访问权限,仅需确保上传文件时继承容器的公共读权限即可。
内容的提问来源于stack exchange,提问作者Guillermo Sánchez
相关产品推荐
相关产品推荐

