1

私はアセットとしてsvgファイルを持っており、routeconfigに以下のコードを記載しました

    routes.IgnoreRoute("{*svg}", new { svg = @"(.*/)?.svg(/.*)?" });

これはcassini(Visual Studio 2012 Buit-in Deployment Server)で正常に機能しているようですが、Azureにデプロイすると404が表示されます。

IgnoreRouteステートメントは正しいですか?または他の解決策?他のすべての画像、スタイルシートは問題なく機能しているようです。

よろしくお願いします。

4

3 に答える 3

1

ディスク上に物理的に存在するファイルのルートを無視する必要はありません。ルーティングモジュールはそれらの要求をルーティングしようとしません。他の仮想リソースへのルートを無視するだけで済みます。

Azure Webサイトには、.svgファイル用に構成されたmimeタイプがありません。少なくとも、昨年末には構成されていませんでした。<system.webserver>web.configファイルのセクションでsvgのmimeタイプを構成できます。

<staticContent>
  <remove fileExtension=".svg"/>      
  <mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
</staticContent>

削除は、.svgのエントリがすでにあるサーバーでのエラーを防ぐためにあります。重複するfileExtensionを追加することはエラーですが、存在しない拡張機能を削除することはエラーではありません。

詳細はこちら:WindowsAzureWebサイトでのASP.NETMVC4の構成のヒント

于 2013-07-17T01:43:40.237 に答える
0

Philのブログを見ると、必要なものは次のようなものだと思います。

routes.IgnoreRoute("{*allsvg}", new {allsvg=@".*\.svg(/.*)?"});

お役に立てば幸いです。

于 2013-07-05T12:38:12.490 に答える
0

ルートを宣言する順序は何ですか?その上に、デフォルトまたはキャッチオールルートがあり、実際にはすでにリクエストを処理しているため、IgnoreRouteがヒットすることはありません。

于 2013-07-16T05:50:40.890 に答える