2009-05-26 10 views
5

私の友人は、Visual Studioを使用してASP.NETでWebサイトを開発しています。彼女はマスターページ機能を使用しています.100%の通常のHTMLとCSSを使用しています。生成されたHTMLページをASP.NET WebサイトからVisual Studioにエクスポートできますか?

ウェブページをマスターページに基づいてHTMLページにエクスポートする方法はありますか?

もしそうでなければ、手動で各ページを読み込んでHTMLを保存するか、それを行う小さなアプリケーションを作成します。

また、誰かが同様のことを達成するためのツールを知っていますか?

+0

非常に興味深い質問! – User

+0

タイトルを編集してうれしいです。投稿した直後に「HTMLページに置いておくべきだ」と思った。 – joshcomley

+0

タイトルを明確にした。 – Soviut

答えて

1

Visual Studioにはこの機能がありません。しかし、サイトマップを歩み、レンダリングされたhtmlをレスポンスオブジェクトから取得し、ファイルに書き込むツールを記述することは可能です。

+0

これは私が「最後の手段」として念頭に置いていたものでした! – joshcomley

1

サイト全体をローカルコピーにエクスポートする方法がわかりません。

しかし、ツール - ウェブサイトのダウンローダがあります。私は1つを知っています - TeleportPro、他のものがあるはずです。あなたにオプションとして鳴るかどうかそれらをチェックしてください。

1

実験したいと思えば、Macromedia Dreamweaverにショットを付けることができます。クライアント側とサーバー側のページ開発に対応しています。

+0

+1クライアントが動的バックエンドを持たないプロジェクトでDreamweaverテンプレートシステムを使用しました。基本的にはASP.NETのマスターページシステムですが、Dreamweaverによってページが生成されます。 – Soviut

1

MasterPagesを使用する場合、MasterPageのコンテンツはサーバー側のコンテンツページ(プリコンパイルまたはページの最初の要求のいずれか)にマージされます。したがって、ある時点で、コンテンツページとMasterPageをaspnet_compileでコンパイルする必要があります。 this MSDN articleの「ランタイム動作」を参照してください。

あなたの友人は昔ながらのサーバ側は(マスターページがとにかくあなたのためにやっていること、本質的である)を含んで使用することもできます

<!--#include virtual="/includes/header.html" --> 
<!--#include virtual="/includes/nav.html" --> 

<p> content </p> 

<!--#include virtual="includes/footer.html" --> 

これは好みのWebサーバー/ホストによってブロックされている場合(一部セキュリティ上の理由からそれを無効にする)、私はメインインデックスページを作成し、Ajax呼び出しを使用してコンテンツDIVを埋めます。もちろん、Javascriptが無効になっていると、訪問者にはコンテンツが表示されません。

1

私はあなたのために自分自身をロールバックする必要があると思います。この関数は、URLを訪問し、内容を取得します。これらの

Public Shared Function GetHTTPContent(ByVal url As String) As String 
    Dim req As WebRequest = System.Net.HttpWebRequest.Create(url) 
    Dim encode As System.Text.Encoding = System.Text.Encoding.GetEncoding("utf-8") 
    Dim sr As New StreamReader(req.GetResponse().GetResponseStream(), encode) 
    Dim HTTPContent As String = sr.ReadToEnd 

    sr.Close() 
    sr.Dispose() 

    Return HTTPContent 

End Function 
0

ロットが存在し、ここでは1です:

HTTrack Website Copier

それは検索エンジンが行うのと同じことだので、これはまた、スパイダーと呼ばれています。

0

ローカル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 
関連する問題