2013-01-02 16 views
5

静的ルートのコントローラ/アクションルーティングで探している従来のswfファイルを使用しています。たとえば、ファイルがルートディレクトリに存在する場合、ファイルMVCルーティング静的ファイル

http://localhost:59801/Resource/Details/ClearExternalPlaySeekMute.swf 

をダウンロードしようとしている:

http://localhost:59801/ClearExternalPlaySeekMute.swf 

は私がルートディレクトリにこのURLをマッピングするためにMapRouteを使用することはできますか?

答えて

1

これはあなたにとってはうまくいくはずですが、これはIISによってうまくいくと思います。

routes.IgnoreRoute("{file}.swf");

私は本当に良かったSOのポストを覚えています。見つけたら、私は参考にしています。基本的には同じ質問

... Using ASP.NET routing to serve static files

+0

ファイルパスを無視するのではなく、実際にそのコンテンツをルートディレクトリにリダイレクトする必要があります。 URLはswfファイルにハードコードされています。 – user547794

+0

この回答は正しいですが、私はあなたの大きな問題は、あなたがすべきでないASP.NET MVCに付属するすべての経路定義をキャッチして使用していると思います。静的なファイルが関係なく配信され、ルートにヒットしないように、ルートをより具体的に定義する必要があります。 –

2

あなたはIISでurl rewriteモジュールを使用することができます。要求はそれが/ClearExternalPlaySeekMute.swfによって提供されます/Resource/Details/ClearExternalPlaySeekMute.swfに行われたときに今

<system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="Rewrite Static Flash file" stopProcessing="true"> 
      <match url="^Resource/Details/ClearExternalPlaySeekMute.swf$" /> 
      <action type="Rewrite" url="ClearExternalPlaySeekMute.swf" /> 
     </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

:あなたはそれをインストールしたら、単純に次の書き換えルールを追加します。

+0

私はこれを考慮しましたが、ローカルでIIS Expressをデバッグするとどうなりますか? – user547794

+0

IIS Expressは、同じIISバイナリ(および完全なiisのほとんどの機能)を使用しているため、URL書き換えを使用できます。 –

+0

URL書き換えはIIS Expressに組み込まれているため、IIS Expressでこの作業を行うためには何もする必要はありません私があなたのweb.configであなたに示したセクションを置くよりも)。 IISの場合、Url Rewriteモジュールをインストールする必要があります。しかし、それはサーバマネージャの機能を有効にするのと同じくらい簡単です。 –

関連する問題