没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
全文可编辑 word 文档 页眉与背景水印可删除
1
ASP.NET Core 如何实现简单的静态网站滚
动更新
目录
Intro
FileProvider
Construct Host
Demo
More
总结
Intro
FileProvider
Construct Host
Demo
More
总结
Intro
全文可编辑 word 文档 页眉与背景水印可删除
2
最近我们老板想让我实现一个静态网站“滚动更新”的
功能,其实就是希望网站部署的时候网站内容完整的切换,
不能网站部署的过程中一部分是新的内容,另外一部分是老
的内容。
这让我想到了微软的 Azure App Service,上家公司主
要是用微软的云服务 Azure,站点是部署到 Azure App
Service 上的,Azure App Service 有一个部署槽的概念,我
们的应用一个版本可以对应一个部署槽,通过部署槽我们就
基本可以无缝地从一个版本切换到另外一个版本。
FileProvider
ASP.NET Core 里静态文件的托管是允许自定义一个
IFileProvider 的,默认会使用物理路径文件, ASP.NET
Core 默认使用 wwroot 目录下作为默认的静态文件来源。
对于静态文件而言我们简单地使用两个目录来模拟两
个部署槽,当需要的时候通过修改配置来动态修改生效的部
署槽,基于 IOptionMonitor 和 PhysicalFileProvider 来
实现一个简单的 DynamicFileProvider,实现代码如下:
public class DynamicFileProviderOptions
{
public string CurrentSlot { get; set; }
}
全文可编辑 word 文档 页眉与背景水印可删除
3
public class DynamicFileProvider : IFileProvider
{
private PhysicalFileProvider
_physicalFileProvider;
private const string DefaultSlotName =
"Slot1";
public
DynamicFileProvider(IOptionsMonitor<DynamicFileProv
iderOptions> optionsMonitor, IWebHostEnvironment
webHostEnvironment)
{
var webRoot =
webHostEnvironment.ContentRootPath;
_physicalFileProvider = new
PhysicalFileProvider(Path.Combine(webRoot,
optionsMonitor.CurrentValue.CurrentSlot ??
DefaultSlotName));
optionsMonitor.OnChange(options
=>
{
剩余10页未读,继续阅读
资源评论
mmoo_python
- 粉丝: 0
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功