在ASP.NET核心中,默認情況下僅從wwwroot
文件夾提供靜態文件。這意味着如果您嘗試從內容/圖像(這是您的根目錄)訪問文件,它將無法工作。
好消息是,您可以根據需要配置靜態文件位置。因此在啓動時更新您的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
現在你可以解決您的視圖代碼從這個路徑獲得的圖像。
@foreach (var item in Model)
{
<div>
<img src="@Url.Content("~/Images/"+item.Image)" />
</div>
}
假設爲收藏的每件item.Image
值都有這樣MyImage.png
一定的價值,你有一個名爲MyImage.png
圖像位於Contents/Images
這是在您的應用程序根目錄(not in the wwwroot directory
)
您也可以考慮將圖像移動到wwwroot目錄,因爲ASP.NET團隊爲此目的添加了該目錄(靜態資產)。
當我發佈這篇文章後,我記得看到wwwroot文件夾並改變了我的item.Image字符串,但我似乎無法使它與該路徑一起工作。即:〜/ wwwroot/images/cardImages。 我認爲可能還有一些其他微妙的細微差別,我不知道? – tocoolforscool
css文件和其他一切都在這個默認的根文件夾中,我想用Core的約定來滾動。我被一個好友建議我應該使用核心,因此我試圖遷移我的項目 – tocoolforscool
正如我在答案中所解釋的,如果您的圖像位於'wwwroot'目錄內,您可以通過GET請求訪問其中的項目(只需嘗試訪問瀏覽器中的資源)。這是因爲asp.net核心允許來自該位置的靜態文件服務。如果您在Content文件夾中具有這些圖像(在應用程序根目錄中,如pre asp.net核心應用程序樣式),則需要更新到Configure配置方法。 – Shyju