NancyFxにという動的ルートを設定する必要があります。特定のブログやページを識別するために、url-slugsを使用するブログや動的CMSを考えてみてください。私はそれがNancyFxで書かれていれば、SOは何かのことをしていると思います...NancyFxのダイナミックルート
何千もの異なるURLスラッグ(データベースから取り出されたページコンテンツ)があるかもしれないので、ルーティングテーブル最良のアプローチではありません。
私は私のNancyModule
のコンストラクタで、次の操作を実行しようとしました:作品のこの種の
public HomeModule()
{
...
foreach (var page in pages)
{
Get(page.Slug, args => GetPage(page.Slug));
}
}
が、次の制限があります。
ルートが一度構築されていますWebアプリケーションの開始時に(NancyFxは最初に検出されたすべてのルートをキャッシュします)。後で実行時に動的に追加される新しいルート(固有のスラッグを持つページまたはブログエントリ)は認識されません。
わずかな数の訪問がありますが、すべてのルートが事前構築されています。ページ/ユニークなナメクジのリストが何千もある場合、これは非常に無駄です。
誰もがNancyFxに動的にルーティングするための戦略を提案することができ、それは - ユニークなナメクジを持つページが動的に追加される - I異なるナメクジとデフォルトPageModuleへのルートはどうすればよいですか?また、あらかじめ定義されたルートを持つモジュールも引き続き使用する必要があります。例えば、私はHomeModule
へのルートにこれらのURLたい:
/
/topic1
/topic2
/topic3
...
(および以下に具体的に列挙されたものを除く他のトピックの任意の数を、)が、以下は、それらを扱う、独自のモジュールを持っている、つまりがある場合競合スラグで定義されたページ/ブログ投稿、それが到達可能ではないでしょう。
/admin
/gallery
/image
注:可能であれば、私は特に/page/{page-slug}
のように、URLに特化したモジュールのセグメントの必要性を回避したいです。 page-slug
が別のモジュールであらかじめ定義されていない場合は、catch-all HomeModule
で処理します。
夜中に質問する必要はありません。朝に来て、あなたの答えを見て、それは明らかなようです。 :-)徹底的な説明をいただきありがとうございます。 – Optimax