1

維持するレガシー コードがあり、特定の顧客のカスタマイズの問題を解決するために、一部のファイルへの呼び出しを他のファイルにルーティングしたいと考えています。つまり、アプリが特定の ASPX を呼び出すと、最終的に別の ASPX にヒットします。

あなたが呼び出す場合:

www.foo.com/admin/admin.aspx

実際にヒットします:

www.foo.com/customizations/customer1/admin/admin.aspx

これは良い設計ではありませんが、これはレガシー コードです。これを解決したいだけです。

私たちはSystem.Web.Routingそれを解決するためにフレームワークを使用しています。これはRouteExistingFiles、静的ファイル (CSS、JavaScript、および画像) を除いて、true に設定すると正常に機能します。最初に試したとき、次のエラーが表示されました。

拡張子 '.css' のビルド プロバイダー レジスタはありません。

.cssそのため、拡張機能の web.config ファイルにビルド プロバイダーを登録しました。私はこのビルド プロバイダーを使用PageBuilderProviderしました。インターネットで誰かが推奨したからです。

できます!しかし、CSS はtext\htmlコンテンツ タイプで提供されています。

どうすればこれを達成できますか?

TL;DR: ASP.NET Web フォームでルートを使用して特定の CSS ファイルを呼び出し、実際に別の CSS ファイルを取得したいと考えています。顧客は、カスタマイズのためにこれを必要とします。

4

1 に答える 1

1

HttpHandler をコーディングしてみてください。同様のことをしなければなりませんでしたが、PDF ファイルの場合は、最後にカスタム HttpHandler をコーディングしました。これは非常にうまく機能します。HttpHandler コードでコンテンツ タイプを設定し、web.config でハンドラーが使用されるパターン マッチ パスを設定することもできます。パスが既存のファイルを指していない場合は実行しないように web.config で構成することもできます。たとえば、ハンドラー自体でコーディングしなくても 404 が返されます。タブレットを使用しているため、コード (VB.NET) ATM を投稿できませんが、Google でチュートリアルを検索しています。実際に css ファイルを書き出すには、おそらく TransmitFile 関数を使用する必要があります。Web フォーム プロジェクトまたは Web サイトですか? Web サイトの場合、web.config に HttpHandler を登録する特別な方法があります。

于 2013-08-02T18:49:48.407 に答える