Ecco la mia soluzione rapida che esegue la scansione del sito Web locale per i file .aspx e genera file .html accanto a 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);
}
}
Ha funzionato per me.
Inoltre, è possibile modificare un file .bat per generare una cartella con tutti i file .html dal proprio sito. Questo è utile quando si crea una copia piatta creativa.
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
Ecco l'esclusione.file txt da utilizzare
.dll
.cs\
.aspx
.pdb
.csproj
.user
.vspscc
.config
fonte
2012-08-14 19:41:32
Una domanda molto interessante! – User
Sono felice che tu abbia modificato il titolo. Ho pensato che "avrei dovuto mettere" nelle pagine HTML "subito dopo aver postato :) – joshcomley
Ho chiarito il titolo per te. – Soviut