2009-07-13 12 views
0

私のクライアントの1人にウェブサイトのコンテンツ管理システムを構築中です。それは非常にカスタマイズされたシステムなので、私は "棚の"ソリューションを使用することはできません。CMSシステムで「オンザフライ」でページを追加

私のクライアントがウェブサイトにそのページをすぐに追加できるようにする必要があります。私はここに2つのオプションがあります: (1)www.mycompany.com/page.aspx?catID=5 & pageID = 3の形式でデータベース駆動型ページを作成します(データベースにカテゴリとページIDを照会し、データを取得します(2)www.mycompany.com/company/aboutus.aspxやwww.mycompany.com/company/company_history.aspxなどのような静的ページを管理システムに作成させることができます。 。

前者は実装がはるかに簡単ですが、後者はユーザーとGoogleの両方にとって優れていると思います。

私の質問は(最終的に):(1)後者がより良い解決策であることに同意しますか?(2)そのような解決策を実装する最良の方法は何ですか? FileSystemを使用して各ファイルを作成して更新する必要があります(サイトの管理システムでは、ページ/ファイル名、ページタイトル、コンテンツをユーザーに提供し、これらのパラメータに基づいてオンザフライでページを作成する必要があります)。より良い方法がありますか?

ありがとうございました!

答えて

4

素敵なURLを持つデータベース駆動型ページを持つことは完全に可能です。 StackOverflow自体は素晴らしい例です。この質問のURLはhttp://stackoverflow.com/questions/1119274/adding-pages-on-the-fly-with-a-cms-systemですが、ページは静的なHTMLではなくデータベースから構築されています。

+0

スタックオーバーフローも、これは自明簡単ですASP.NET MVCを使用しています。 –

2

最初の解決方法を使用しますが、カスタムリクエストハンドラを使用してアドレスをマスクします。基本的には、各ページに一意の文字列ID(例:about-us)を付けてから、すべての要求を受け取るリクエストハンドラを使用して、データベース内のこの特定のページを見つけてレンダリングします。

は(。ASP.NETでカスタムHTTPハンドラのためにグーグルたときにそれを見つけた)いくつかの追加情報についてはthis articleを参照してください。その記事では、以下のハンドラが追加されました:

<add verb="*" path="*.piechart" type="PieChartHandler"/> 

おそらくをキャッチしたいと思いますすべてパス(*)。CSS、画像、JavaScriptに使用される特定のメディアパスは除きます。

その他のリソース:

0

Iどこ場合、私は、静的なページを明確にいたいです。ダイナミックデータ、MVC、そしていくつかの良い計画は、あなたを長い道のりにするはずです!

あなたがする必要があるのは、mvcの各ビュー/コントローラが使用できるテンプレートをいくつか作成することです。コンテンツを担当する者は誰でも、動的データエンティティを介して処理します。

0

私は最初のアイデアを使用しますが、より良いURLスキームを考え出します。システムが良いURLを提供していない場合(?は付きません)、検索エンジンにサイト全体を解析させるのに問題があります。また、単語の代わりに数字を使用すると、ユーザーはURLを渡すことが難しくなります。

パフォーマンスの問題が発生する場合は、静的ページを生成するキャッシュを追加することができます。私はあなたがするまでそれをやるのをやめます。キャッシングは、道に沿って多くの頭痛を引き起こし、正しいものにすることができます。

0

既存のアドバイスは多かれ少なかれ健全ですが、解説者は詳細をあまり伝えていない1つの要因については検討していません。これらのページは、作成後に編集したり、ワンショットで作成したりしていますか?後者の場合、静的なページを生成する計画は、それほど悪くはありません。フラットなコンテンツだけを扱うことができるときに、データベーススキーマやキャッシングについて考える必要はありません。

それはおそらくかなり死んで、エンド・オブ・ロードページのために作るだろうが、それはあなたが望むかどう...

関連する問題