Azure Web 应用程序 - 包括可编辑的 Pre-Header 文件?

Azure Web App - Include An Editable Pre-Header File?

试图找出一种好方法来获得易于编辑的内容块,我可以将其包含在我的 Azure Web 应用程序的 header 中。

想一想位于我的 header 上方的 'pre-header' 通知消息。也许 99% 的时间,它是空的,但偶尔我会放入“1 小时内站点停机维护”警告消息或其他通知。我不想通过 Devops 交换舞蹈完成整个发布/推送 - 我只想使用在线编辑器进入某个地方(Azure Blob 或文件存储),对通知进行一些快速更改 它出现在网站上。

我相信有很多方法可以做到这一点,但有没有一种简单的方法可以:

  1. Azure 存储中是否有可以通过浏览器轻松编辑的文件?我以前在 Azure 存储中做过“静态站点”,但我不是 100% 确定这对我来说是最佳途径。

  2. 如何最好地将该文件包含在我的 Azure Web 应用程序(ASP 核心 MVC)中?

谢谢!

万一别人有这个需求,我昨晚想通了。我刚想起来 - 为什么不使用 Azure Kudu 诊断控制台编辑器来修改文件?

Kudu is found in Azure Dashboard for your Web App in left menu under "Development Tools / Advanced Tool" option. Then click on Debug Console/CMD in the Kudu menu for a little GUI which you can navigate the Azure WebApp site directories and edit any file.

另一个技巧是包含文件。我在我的 Visual Studio 项目中放置了一个名为“/includes/preheader.htm”的文件。在我的 /Shared/_Layout.cshtml 页面中,我有以下代码:

//if you have a 'wwwroot' folder in your VS project, you will actually
//need to put wwwroot TWICE to get the relative path on Azure Web App.
//it will be different on your local machine for testing, 
//you will need somthing like @"..\[PROJECTNAME]\wwwroot\include\preheader.htm"

string azureincludepath = @"..\wwwroot\wwwroot\include\preheader.htm";
string preheader = String.Empty;

//ignore any exceptions we get trying to read the file.  
//you don't want your entire site down if you accidentally delete your include file

try
{
    preheader = System.IO.File.ReadAllText(azureincludepath);
}
catch(Exception ex)
{
    //do nothing - just move on.  no preheader will show
}

...


//later in the html <body> where I want it
@Html.Raw(preheader)

免责声明:我确信这违反了大约六项安全建议,而且我的理解是您真的不应该使用@Html.Raw 来显示您网站上的内容。如果您认为从这个角度来看这是一个糟糕的解决方案,请随时发表评论。