ローカルWebサイトで.aspxファイルをクロールし、htmlの横に.htmlファイルを生成するクイックソリューションです。
protected void ButtonGenerate_Click(object sender, EventArgs e)
{
RecursivelyGenerateHtmlFiles(Server.MapPath("~/"), new DirectoryInfo(Server.MapPath("~/")));
}
private void RecursivelyGenerateHtmlFiles(string root, DirectoryInfo folder)
{
foreach (var aspxPage in folder.GetFiles("*.aspx"))
{
var destination = aspxPage.FullName.Substring(0, aspxPage.FullName.Length - 4) + "html";
if (File.Exists(destination))
File.Delete(destination);
var url = "http://" + Request.Url.Authority + "/" + aspxPage.FullName.Replace(root, "");
var request = HttpWebRequest.Create(url);
File.WriteAllText(destination, new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd());
}
foreach (var subDirectory in folder.GetDirectories())
{
RecursivelyGenerateHtmlFiles(root, subDirectory);
}
}
私のために働きました。
また、.batファイルを編集して、サイトのすべての.htmlファイルを含むフォルダを生成することもできます。クリエイティブにフラットコピーを与えるときに便利です。
set folder="Generated"
cd /d %folder%
for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
cd /d ..
xcopy /r /d /i /s /y /exclude:exclude.txt PAHtml Generated
ここは除外です。使用するtxtファイル
.dll
.cs\
.aspx
.pdb
.csproj
.user
.vspscc
.config
非常に興味深い質問! – User
タイトルを編集してうれしいです。投稿した直後に「HTMLページに置いておくべきだ」と思った。 – joshcomley
タイトルを明確にした。 – Soviut