4

Visual Studio仮想サーバーでは、これは機能します。しかし、IISにサイトを配置すると、コンテンツフォルダーの画像が表示されません。

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

各画像のブラウザでエラーが発生する

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

1 に答える 1

4

まず最初に、すべての「アイコン」がソリューションの一部であり、実際にWebサーバーにデプロイされていることを確認しますか?ソリューションディレクトリにファイルを追加する場合がいくつかありますが、VSにはソリューションが自動的に含まれないため、実際に展開されることはありません...

それで問題がなく、画像が実際に存在する場合、次の質問は@Url.Content、ビューでヘルパーを使用して、それが正常に機能しているかどうかを判断しようとしたかどうかです。

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

編集

これをJavascriptで実行しようとしていて、上記のタグはHTMLで機能するため、そのコードを次のコードに凝縮できるはずです。

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

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

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

于 2012-04-09T21:50:25.293 に答える