2011-01-25 9 views
2

私はこのようなビューを持っています {{img src = "/ Scenario/Status/id" alt = "ステータス" /}}MVCアプリケーションがIIS上でホストされているときにIISに画像が表示されないASP.NETデベロッパーサーバー上のデベロッパー

(<上記>これらを{}置き換える)

、これはコントローラのアクションでコード

public ActionResult Status(int? id) 
    { 
     // Calculate the status 
     int no = new Random().Next(0, 2); 
     string file = "green.jpg"; 
     if (no == 0) 
     { 
      file = "red.jpg"; 
     } 
     else if (no == 1) 
     { 
      file = "yellow.jpg"; 
     } 
     else if (no == 2) 
     { 
      file = "green.jpg"; 
     } 
     var path = Server.MapPath("/Content/images/"); 
     var filePath = path + file; 

     return new FileContentResult(System.IO.File.ReadAllBytes(filePath), "image/jpeg"); 
    } 

iはVisualStudioを上で実行するときは、このだけで正常に動作しています。しかし、ローカルのIISに展開すると、これらのイメージは表示されません。 IISの[Windowsの機能]で[StaticContent]オプションが選択されていることと、IISでMIMEタイプが有効になっていることを確認しました。私はまた、* .jpgファイルが私のアプリの "inetpub"フォルダの下に存在することを確認しました。以来、私はイメージのための仮想パスを使用してファイル名をhardcofingないよ、それは動作するはずです...

私はちょうどこの

{{のimg srcは=「../コンテンツ/画像/ Green.jpg」を試してみましたALT =「ステータス」/}}そしてそれはあまりにも動作します。.. :(

他に何が間違っている可能性が?

+0

を働いた

IISことはあなたです仮想ディレクトリまたはサイトルートに展開しますか? – Brook

答えて

2

Application_Error方法でブレークポイントを設定することであろう問題に多くの洞察を得るための簡単な方法global.asaxの画像を取得し、画像の要求が来たときにどのような例外が発生しているのかを確認してください。

IISの仮想ディレクトリ配備の場合は、Server.MapPath("~/Content/images/") を使用する必要があります。ここで、Asp.Netは~をアプリケーションルートに置き換えます。

+0

その作業は...私はGlobal.asax.csファイル内のApplication_Errorというメソッドを参照していません。 – vicky

+0

このメソッドは 'protected void Application_Error(Object sender、EventArgs e){}'を作成できます。 'Server.GetLastError()'の例外をチェックすると、便利な例外が発生します。 – Brook

0

仮想ディレクトリCに配備されている:\のinetpub \ wwwrootに\テストサイト.... が目eproblrm

2

が上のサブフォルダアンクルルートサイトにホストされているアプリで画像を表示するための解決策を見つけたということですあなたはIISにデプロイする場合これは...

のIMG SRC = "<% = Url.Content(" 〜/ホーム/ GetRainfallChart ")%>" ALT = "チャート"

+0

CSSスタイルの画像の場合はどうすればいいですか? – kn3l

関連する問題