2012-04-09 8 views
4

ビジュアルスタジオ仮想サーバでは、これが動作します。しかし、IIS上にサイトを置くと、コンテンツフォルダの画像は表示されません。asp mvcプロジェクトのiisのコンテンツフォルダから画像を読み込むことができません

var imgPath = '/Content/Images/Icons/' + icon + '.png'; 
       var imageContent = '@Server.MapPath(Url.Content("-1"))'; 
       image = imageContent.replace('-1', imgPath); 

私は最初のものが最初である、あなたはあなたの「アイコン」のすべてがソリューションの一部であり、実際にあなたのWebサーバに配備されていることを確信している

http://localhost/Content/Images/Icons/carwash.png Failed to load resource: the server responded with a status of 404 (Not Found) 

答えて

4

ブラウザのforeachイメージにエラーが発生します?私はソリューションディレクトリにファイルを追加するいくつかのインスタンスを持っていて、VSは自動的にソリューションに含まれないため、実際には展開されません。

これは問題ありません。私の次の質問は、ちょうどそれが正常に動作しているかどうかを判断するためにあなたのビューで@Url.Contentヘルパーを使ってみましたか?

<img src="@Url.Content("~/Content/Images/Icons/SomeIcon.png")"/> 

EDIT

あなたはJavaScriptでこれを実現しようとしていると、上記のタグはHTMLで動作するので、次のコードまでがそのコードを凝縮することができるはずです。

var image = '@Url.Content("~/Content/Images/Icons/")' + icon + '.png'; 

先に進み、MVCにIconフォルダのパスを取得させ、ファイルと拡張子を追加します。これにより、文字列の置換が不要になり、JSのアイコンパスを処理できるようになります。

var imageは、この関数に渡したアイコンファイルの完全な相対パスになります。この文字列を使用してimg srcタグを更新したり、イメージなどを作成したりすることができます。

+0

ローカルのIISを使用しています。ビジュアルスタジオサーバーの代わりにIISを使用するプロジェクトのプロパティを変更するだけで、イメージはそこに100%あります。私はそれも試みたが、何もしなかった。 – 1110

+0

実際には、htmlのイメージのように使用するとコードが動作します。しかし、私は動的に画像ファイル名とパスを結合するjavascriptでこれを書いています。 – 1110

+0

上記の関数からJSが出力しているものと、HTMLバージョンが差異のために出力しているソースパスを比較します。 – Tommy

関連する問題