9

いくつかの領域とポータブル領域も備えた MVC3 アプリケーションがあります (MVCContrib を使用)

通常、すべてのコンテンツ ファイルを ~/Content に、スクリプトを ~/Scripts に保存します。

しかし、私は自分のサイトの別のサービスに対してかなり複雑な Web クライアントを構築しており、これらの JavaScript と画像ファイル (大量の画像ファイルとリソース) をエリアのフォルダー構造 (~/Areas/ の下) の下に整理したいと考えています。 Web クライアント

  • コンテンツ
    • CSS
    • フォント
    • 画像
    • js
  • コントローラー
  • モデル
  • ビュー

私はリソース アグリゲーター コントローラー (私のポータブル領域の 1 つ) を持っています。これは、CSS/JS フォルダーに到達してそのコンテンツを提供することができます。ただし、CSS ファイルは images/fonts フォルダーを直接参照しており、これらのリンクはすべて壊れて表示されます。パスを二重および三重にチェックし、すべてが正しいことを確認しましたが、それでも 404 エラーが発生します。

私の知る限り、静的ファイルがある限り、MVC3 はルーティングを無視するはずです。また、私の知る限り、App_* フォルダーのみが特別な保護を受けています。私は何が欠けていますか?イメージとリソースをメイン アプリケーションに混在させたくないのは、できるだけ避けたいからです。

例として: http://localhost/Areas/WebClient/Content/images/knownimage.pngは動作しませんが、存在するので動作するはずです!

4

1 に答える 1

17

そのため、しばらく寝て、さらに重要なことに、問題から離れた後、MVC は、ビューを直接ダウンロードする人々から実際に保護を提供していることを思い出しました。案の定、基本的にすべての要求を FileNotFound ハンドラーに送信する httphandler があります。

私がしなければならなかったのは、次のように公開したいコンテンツフォルダーに web.config ファイルをドロップすることだけでした:

<?xml version="1.0" encoding="utf-8"?>
<configuration>  
  <system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <handlers>
      <remove name="BlockViewHandler" />     
    </handlers>
  </system.webServer>
</configuration>

問題が解決しました。

于 2011-09-22T04:23:53.880 に答える