【问题标题】:Cannot Display an Image (404)无法显示图像 (404)
【发布时间】:2015-11-06 15:03:36
【问题描述】:

我正在考虑将现有的 MVC5 项目升级到 MVC6。但是,当我尝试在 MVC6 项目中显示图像时,它会显示 404s。图片的路径是:

    /Content/images/image.png  

在我的 MVC5 项目中,以下工作:

    <img src="@Url.Content("~/Content/images/image.png")" />

我尝试了以下方法:

    <img src="@Url.Content("~/Content/images/image.png")" />
    <img src="@Url.Content("/Content/images/image.png")" />
    <img src="@Url.Content("Content/images/image.png")" />
    <img src="@Url.Content("~Content/images/image.png")" />
    <img src="~/Content/images/image.png" />
    <img src="/Content/images/image.png" />
    <img src="Content/images/image" />
    <img src="~Content/images/image.png" />
    <img src="C:\absolute\path\Content\images\image.png" />

MVC6 是否改变了引用图像的方式?

【问题讨论】:

标签: asp.net-core asp.net-core-mvc .net-core


【解决方案1】:

您需要将图像放在wwwroot 文件夹下。仅提供此文件夹下的静态文件。您还需要确保在 Startup.cs 文件中添加了对静态文件的支持。

public void Configure(IApplicationBuilder application)
{
    // Add static files to the request pipeline e.g. hello.html or world.css.
    application.UseStaticFiles();

    // Add MVC to the request pipeline.
    application.UseMvc();
}

【讨论】:

  • 是否适合将我的整个内容文件夹复制到 wwwroot 文件夹中,并且保持我的引用不变?
  • 是的。我改变了我的路径,所以/Content/images/image.png 变成了/wwwroot/images/image.png。希望对您有所帮助。
【解决方案2】:

虽然我认为最好将文件移动到 wwwroot 文件夹中,如接受的答案中遵循标准约定,但您也可以通过配置更改静态文件的路径。

在您的 project.json 文件中,将配置属性更改为指向您的静态文件路径。

"webroot": "wwwroot"

只是一种替代方法。

【讨论】:

    猜你喜欢
    • 2017-02-13
    • 2013-12-31
    • 1970-01-01
    • 2016-06-28
    • 2012-06-30
    • 2019-12-29
    相关资源
    最近更新 更多