【问题标题】:Display image razor pages显示图像剃须刀页面
【发布时间】:2023-03-17 20:45:01
【问题描述】:

我正在尝试在位于服务器端的 Web api 上显示图像。 现在我已将它们添加到我在 Visual Studio 的解决方案中(我添加了两个尝试,我指定一个作为嵌入式资源,一个指定为无作为构建操作。它们直接在 WebAPISolution/xxx.png 中,而不是在子文件夹中

在我的cshtml页面中,我放了这个:

<div>
<p>Test image</p>
     <img id="img1" alt="Image1.png" src="@Url.Content("~/Image1.png")">
</div>

在我的网页上没有显示。 它似乎在寻找它:

查看源代码:https://xx.xx.xx.xx:5001/Image1.png

错误信息是

“无法显示,因为它包含错误”

,我猜它只是找不到它,因为与不存在的 ImageXXX.png 相同返回相同的错误 我不明白为什么图片不显示。

这是我的解决方案文件夹的组织方式

【问题讨论】:

  • 我认为你需要把你的图片放在 wwwroot 文件夹中
  • 您将图像存储在哪里?您必须查看图像位置的确切路径,然后相应地创建路径。您可以将图像存储在您的项目中:&lt;img src="/Content/Images/Image1.png" /&gt;,然后尝试在您的视图上渲染它。如果显示,则说明您在代码中错误地创建了路径。我认为应该是这样的:@Url.Content("~/Content/Images/Image1.png")
  • 两种解决方案的错误相同。它显示 alt="Image1.png" 并且源页面说它在 xx.xx.xx.xx:5001/Content/Images/Image1.png 或 wwwroot/Image1.png 中查找图像我将图像存储在“解决方案文件夹”中。
  • @p.deman 请不要将图像保存在解决方案文件夹中。这是存储图像的非常不正确的方式。请将您的图像保存在项目的Content/Images 文件夹下。如果您能够看到图像,那么您在数据库中为图像保存的路径可能存在问题。
  • 这是我在您发表评论后所做的。我把它们放在 SolutionFolder/Content/Images 中,但它给了我同样的错误

标签: c# asp.net-mvc image asp.net-web-api


【解决方案1】:

1 ) 在您的启动类中,您应该在 public void Configure() 方法中添加 app.UseStaticFiles();
2) 将您的图像放入 wwwroot 文件夹
3)将此代码添加到您的剃刀视图&lt;img src="~/Image1.png" /&gt;

【讨论】:

  • 图片不能放到wwwroot文件夹怎么办?
  • 在这种情况下,您需要添加类似这个 app.UseStaticFiles(new StaticFileOptions() { FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"content", @"js ")), RequestPath = new PathString("/js") });
  • 完美!谢谢!
  • 在这种情况下,请使用app.UseStaticFiles() 的正确用法更新答案,以供其他人查看。
猜你喜欢
  • 2021-03-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-21
  • 2021-01-05
  • 1970-01-01
  • 2018-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多