ASP.NETコアでは、静的ファイルはデフォルトでwwwroot
フォルダからのみ提供されます。つまり、あなたのルートであるContents/Imagesからファイルにアクセスしようとすると、動作しません。
良いニュースは、静的ファイルの場所を自由に設定できます。したがって、起動時にConfigure
メソッドを更新してください。
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
// Your existing code goes here
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"Content/Images")),
RequestPath = new PathString("/Images")
});
}
は今、これらの画像は今、あなたはこのパスから画像を得るためにあなたのビューのコードを修正することができ、このyourSiteName/Images/imageFile.png
のようにブラウザからアクセスすることができます。コレクション内の各項目についてitem.Image
値を仮定し
@foreach (var item in Model)
{
<div>
<img src="@Url.Content("~/Images/"+item.Image)" />
</div>
}
このMyImage.png
ようないくつかの値を持っており、あなたがMyImage.png
と呼ばれる画像は、アプリケーションのルートにあるContents/Images
に位置してい(not in the wwwroot directory
)
また、検討することができますASP.NETチームがこのような目的のためにそのディレクトリ(静的資産)を追加したため、画像をwwwrootディレクトリに移動します。
私はこの記事を作った直後に、wwwrootフォルダを見て、item.Image文字列を変更したことを思い出しましたが、そのパスでは動作しないようです。すなわち:〜/ wwwroot/images/cardImages。 私が気付いていない他の微妙なニュアンスがあると思いますか? – tocoolforscool
cssファイルとそれ以外のものはすべてこのデフォルトのルートフォルダにありますので、Coreの表記規則を使いたいと思います。私は、あなたが私のプロジェクトを移行しようとしているので、私はコアを使うべきだと仲間からアドバイスされました – tocoolforscool
あなたのイメージが 'wwwroot'ディレクトリの中にある場合、GETリクエスト(単にブラウザ内のリソースにアクセスしようとする)。これはasp.netコアがその場所から静的なファイルを提供できるためです。 Contentフォルダ(pre asp.net core appsスタイルのようなアプリのルートにある)にこれらのイメージがある場合は、 'Configure'メソッドの更新を行う必要があります。 – Shyju