ページング名を取得するためにルーティングを使用しているCMSシステムがあります。私は最初の項目と最後の項目(ページ名)の間に無制限の値(サブディレクトリ、製品名、異なるローカリゼーション)を持つ必要があります。例えばワイルドカードを使用したASP.NET URLルーティング
:
/製品/コンピュータ/ ComputerType1/
そして
ComputerType1は、ページ名です/PRODUCTOS/Ordenadores/ComputerType1/
。
routes.Add(new Route("{*route}/{pageName}", routeHandler));
私はサブディレクトリの数に制限はページ名の前に置くことができるように、ワイルドカードであることを、経路の中間部分({*ルートを})を作成する方法を見つけることができません。現在のところ、次のようなデフォルトのワイルドカードルートを使用してこれを回避することができました。すべてをキャッチするためには、
routes.Add(new Route("{*route}", routeHandler));
などがあります。これを行うためのより良い方法はあり
routes.Ignore("{resource}.axd/{*pathInfo}");
routes.Ignore("{resource}.asmx/{*pathInfo}");
routes.Ignore("{resource}.ashx/{*pathInfo}");
routes.Ignore("{resource}.gif/{*pathInfo}");
routes.Ignore("{resource}.png/{*pathInfo}");
routes.Ignore("{resource}.jpg/{*pathInfo}");
routes.Ignore("{resource}.ico/{*pathInfo}");
routes.Ignore("{resource}.pdf/{*pathInfo}");
routes.Ignore("{resource}.css/{*pathInfo}");
routes.Ignore("{resource}.js/{*pathInfo}");
:しかし、ワイルドカードもあなたが私のように経路コードで上記の無視として、それが指定されても、gif形式のURLを入れるているように見えますか?これはカスタムルートハンドラを介して処理する必要がありますか?
カスタムルートが動作しています。しかし、私はまだ、 "App_Themes/directoryname/images/image1.gif"にあるgifファイルをキャッチしているワイルドカードルートに問題があります。ルートはignore( "{resource} .gif/{* pathInfo}");イメージがルートディレクトリにある場合にのみ動作します。私が気づいたことの1つは、イメージファイルがテーマで参照されていますが、ファイルが存在しないことです。テーマ内の他のイメージファイルは存在し、ルーティングしようとしていません。私は "/ App_Themes/{folder} ....."に基づいて経路を追加することを考えています。その他の提案はありますか? – econner
これは、問題はgifイメージがテーマで参照されているが、acutalファイルは存在しないため、IISは「ファイル」を無視できず、キャッチオールURLとしてルーティングしているようです。 – econner