首页/新闻资讯/正文详情

VedAstro部署架构全拆解:Blazor WebAssembly + Azure Static WebApp + CDN规则引擎实战指南

发布时间:2026/11/5 1:27:31 来源:云帆数科 栏目:资讯中心
VedAstro部署架构全拆解:Blazor WebAssembly + Azure Static WebApp + CDN规则引擎实战指南
【免费下载链接】VedAstroA non-profit, open source project to make Vedic Astrology easily available to all.项目地址https://gitcode.com/gh_mirrors/ve/VedAstro点击查看免费下载VedAstro 是一个免费开源的吠陀占星Vedic Astrology项目本文带你拆解它的部署架构前端采用Blazor WebAssembly单页应用托管在Azure Static Web App静态存储上再由Azure CDN 规则引擎解决 SPA 路由 404 与 SEO 静态页问题计算密集的 API 则运行在 Azure Functions。整套架构几乎零服务器成本非常适合想要前端重、后端轻的开源项目参考。一、整体架构一张图看懂 VedAstro 部署分层VedAstro 把项目拆成四个相互独立的部分核心计算库Core Library、API 库API Library、客户端Client以及面向各平台的分发形式。占星计算逻辑全部集中在 .NET 核心库中Web 端只是一个调用者。官方 README 中用一张 ASCII 图概括了线上请求流向-------- ------------------------ ------------------ | User | ------ | Website | ------------- | API | | | ------ | - Blazor WebAssembly | ------------- | - Azure Functions| -------- GUI | - Azure Static WebApp | XML | | ------------------------ ------------------可以看到三个关键点WebsiteBlazor WebAssembly 前端 Azure Static Web App 静态托管APIAzure Functions 无服务器计算服务User 浏览器直接运行 .NET 代码WebAssembly与 API 通信二、前端实战为什么选 Blazor WebAssembly打开 Website/Website.csproj可以看到几个关键配置Microsoft.NET.Sdk.BlazorWebAssembly标准 Blazor WASM 项目模板TargetFramework为net8.0开启PublishTrimmed裁剪减小 .wasm 体积通过Flavor区分AOT_ON/AOT_OFF两种构建注释里坦诚写着 AOT 在 Android Chrome 上存在问题可随时切换启动入口 Website/Program.cs 做了两件与部署相关的事注册一个Timeout设为无限的HttpClient因为占星计算耗时较长不能靠默认超时注入自定义的UnhandledExceptionSender把未处理异常上报到服务端日志——官方注释说这确保地球上任何一次崩溃都不会被忽视而 Website/wwwroot/index.html 是整个 SPA 的外壳它先显示一个加载动画挂好#blazor-error-ui错误兜底 UI最后才以defer方式加载_framework/blazor.webassembly.js启动应用。所有 CSS/JS 第三方库Bootstrap、Chart.js、Tabulator 等都走公共 CDN。 这套结构意味着服务器上根本没有 .NET 进程。所有 C# 代码都在浏览器里运行静态资源放 Blob Storage 即可。三、一键部署到 Azure Static Web App最快发布步骤发布流程被压缩在一个脚本里——Website/Start.ps1dotnet run swa deploy ./bin/Release/net7.0/publish/wwwroot --deployment-token第一行本地调试第二行用swaCLI 把wwwroot发布目录上传到 Azure Static Web App通过 deployment-token 免登录认证发布后资源落在 Azure 的 Blob Storage前端由 Azure CDN 加速分发配合 Website/staticwebapp.config.json 里的navigationFallback所有未命中文件的路径 rewrite 到/index.htmlStatic Web App 层先做第一轮 SPA 兜底。四、CDN 规则引擎实战Blazor 直接访问页面不 404Blazor SPA 部署在静态存储上有个经典难题用户直接输入/LifePredictor.html这类深层链接时服务器上并没有这个文件直接 404。VedAstro 的解法是在 Azure CDN 规则引擎Rules Engine里加一条精确的 URL 重写规则只放行真正的页面导航请求匹配条件说明Request method GET只处理 GETURL path 不以/api/开头不碰 API 流量Sec-Fetch-Mode包含navigate是浏览器地址栏/链接跳转Sec-Fetch-Dest包含document目标是文档而非 JS/CSS/图片命中后执行两个动作把路径重写rewrite回/让 Blazor 前端接管路由并在响应头追加rule-engine: StopBlazorDirectPage404便于排查。规则引擎的原始截图如下README 的 Design Decision Notes 里还提到另一类规则用途Handling SEO bots via Rules——搜索引擎爬虫访问时返回干净、静态的 HTML 而不是 JS 应用。仓库里Website/wwwroot/seo/目录正是一套为此准备的纯 HTML 页面Website/wwwroot/seo/index.html、Horoscope、LifePredictor 等工具页各有一份配合sitemap.xml做 SEO 收录。缓存怎么刷项目把 CDN 刷新命令也存成了文件——Website/CDNPurge.txtaz cdn endpoint purge --resource-group VedAstro --profile-name CDNProfile --name vedastro --content-paths /*五、域名与路由一条 CDN 如何分出 Web 和两套 APIREADME 记录了 2023 年 3 月的域名转发设计三条链路全部走 Azure DNS Azure CDNWebvedastro.org→ 域名注册商 → Azure DNS → Azure CDN → Web Blob StorageAPI 稳定版api.vedastro.org→ Azure DNS → Azure CDN → 稳定版 API 服务器API Beta 版beta.api.vedastro.org→ Azure DNS → Azure CDN → Azure 上的 Beta API也就是说同一个 CDN 端点通过规则引擎把不同的子域/路径路由到不同后端api.vedastro.org/...与/nlp/...走 API其余走静态站证书则由 Lets Encrypt ACME 机器人Azure Function自动续期管理。六、后端 APIAzure Functions 隔离模式 Docker 自托管API 项目API/Program.cs只有十几行代码核心是ConfigureFunctionsWorkerDefaults()说明它运行在Azure Functions 隔离宿主isolated worker上无服务器按需计费。API/Dockerfile 则提供本地/自建部署路径基于azure-functions/dotnet-isolated官方镜像用sdk镜像做 build → publish 多阶段构建最终复制到final阶段。Dockerfile 注释特别强调路径值至关重要因为它们是大多数失败的原因。七、关键文件清单按这张表就能找到架构证据架构环节文件路径WASM 前端工程裁剪/AOT 开关Website/Website.csproj前端启动与异常上报Website/Program.csSPA 外壳与第三方 CDN 加载Website/wwwroot/index.html一键 swa deploy 脚本Website/Start.ps1Static Web App 路由兜底配置Website/staticwebapp.config.jsonCDN 全量刷新命令Website/CDNPurge.txtSEO 静态 HTML 页Website/wwwroot/seo/index.htmlFunctions 隔离宿主入口API/Program.csFunctions Docker 多阶段构建API/Dockerfile架构设计决策笔记README.md八、总结这套架构值得借鉴的 3 个点计算下沉到浏览器占星计算跑在 Blazor WebAssembly 里静态托管即可服务全球用户成本极低规则引擎替代网关用 CDN Rules Engine 同时完成 SPA 防 404、API 子域路由、SEO 爬虫处理三件事省掉一层反向代理命令即文档部署脚本、CDN 刷新命令、设计决策全部以文件形式留在仓库里新人接手一眼就能看懂如果你想亲自体验可以 clone 仓库后按 Website/Start.ps1 的两行命令本地跑通前端再对照上表逐一查看各模块源码。赞分享【免费下载链接】VedAstroA non-profit, open source project to make Vedic Astrology easily available to all.项目地址https://gitcode.com/gh_mirrors/ve/VedAstro点击查看免费下载相关推荐owllook 小说搜索引擎实战指南架构设计、解析规则、安装部署与运维排障owllook 小说搜索引擎实战指南架构设计、解析规则、安装部署与运维排障 owllook 是一个基于百度、360、Bing、DuckDuckGo 等通用搜索搜索引擎网页爬虫后端xlwings Server深度解析无需本地Python即可运行Excel自动化xlwings Server深度解析无需本地Python即可运行Excel自动化 在数据处理和办公自动化领域Excel与Python的结合一直是提升效率的关后端Java规则引擎实战指南Easy Rules模块化架构深度解析Java规则引擎实战指南Easy Rules模块化架构深度解析 你是否曾经面对复杂的业务逻辑感到束手无策当if else语句层层嵌套代码变得越来越难以维护后端工作流自动化上一篇GNU Emacs多平台部署Windows、macOS、Linux的完整安装指南下一篇Yuxi-Know智能体中间件开发动态工具加载与上下文管理终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

rea 安装指南:一条命令跑通全平台逆向分析
rea 安装指南:一条命令跑通全平台逆向分析

rea 安装指南:一条命令跑通全平台逆向分析 【免费下载链接】rea Reverse engineer anything with agents, from app behavior down to native binaries. 项目地址: https://gitcode.com/GitHub_Trending/rea2/rea rea 是开源逆向工程 CLI:一条 re… · 2026/11/5 1:27:31

零信任接班虚拟专用网络
零信任接班虚拟专用网络

国/资/委79号文明确要求,2027年前,网络安全设备须“全面替代”。虚拟专用网络V/P/N作为央国企远程办公的标配,是通往企业内网的“咽喉要道”,自然首当其冲。其实,央国企早已苦V/P/N久矣:网络暴露面大&#… · 2026/11/5 1:27:31

零基础实现IEC61850(12)取代模型
零基础实现IEC61850(12)取代模型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 1:27:31

键盘与鼠标:结构原理与选购指南
键盘与鼠标:结构原理与选购指南

1. 键盘与鼠标:人机交互的核心工具键盘和鼠标作为计算机最基础的输入设备,它们的设计原理和结构直接影响着我们的工作效率和使用体验。作为一名长期与各种输入设备打交道的技术爱好者,我深刻理解选择合适设备的重要性。不同类型的键盘和鼠标在… · 2026/11/5 2:16:48

鸿蒙开发中的数组、元组与枚举实战指南
鸿蒙开发中的数组、元组与枚举实战指南

1. 鸿蒙应用开发中的复杂数据类型概述在鸿蒙应用开发中,掌握复杂数据类型是进阶开发的关键一步。数组、元组和枚举这三种数据类型在实际开发中出现的频率极高,它们分别解决了不同类型的数据组织问题。对于零基础开发者来说,理解这些数据类型的… · 2026/11/5 2:16:48

云平台钓鱼攻击技术解析与防御实践
云平台钓鱼攻击技术解析与防御实践

1. 钓鱼攻击的技术路径解析1.1 云平台基础设施的信任滥用机制在2025年底爆发的这起大规模钓鱼攻击事件中,攻击者展现了对云平台基础设施的深刻理解。他们选择Google Tasks通知和Application Integration服务作为攻击载体,这绝非偶然。这两个服务在企业日… · 2026/11/5 2:16:48

Vue数据透视表组件:纯前端拖拽式OLAP分析
Vue数据透视表组件:纯前端拖拽式OLAP分析

简介:这是一份面向Vue.js中高级开发者的数据透视表功能组件资源,用于快速在Web应用中集成可拖拽配置的聚合分析表格,解决业务中常见的多维数据交叉统计与动态展示需求。资源包共20个文件,含7个核心JS逻辑文件(如HashTa… · 2026/11/5 2:16:48

Claude Code智能编程助手安装与使用指南
Claude Code智能编程助手安装与使用指南

1. 项目概述Claude Code作为新一代智能编程助手,正在改变开发者日常工作的方式。这款工具通过深度集成主流开发环境,为程序员提供了实时的代码建议、错误检测和自动补全功能。不同于传统的代码补全工具,Claude Code能够理解项目上下文&#x… · 2026/11/5 2:16:48

GEC2410 WinCE底层实验包:手册与源码对照实战指南
GEC2410 WinCE底层实验包:手册与源码对照实战指南

简介:这份资源面向嵌入式系统初学者与进阶开发者,围绕三星S3C2410(ARM920T内核)硬件平台与Windows CE系统的集成开发展开,提供实验手册与配套源码,帮助读者理解从系统架构、硬件接口到驱动与应用程序开发的… · 2026/11/5 2:15:48

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码