图像呈现正确的链接,但无法加载图像

时间:2013-08-27 20:35:53

标签: asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 razor

我已将图片上传到目录〜\ Files \ image \ C3-E1-B6-74.png,我将其保存在数据库中。现在我正试图显示这个图像。

cshtlm

 <img src="@Url.Content(file.FileLink)" alt="test" />

呈现此页面时,我会检查图像标记

 <img alt="test" src="C:\Users\thomas\Desktop\Freelauncher1005\Freelauncher\Files\image\C3-E1-B6-74.png">

因此链接正确呈现。当我复制此链接并将其粘贴到我的文件夹浏览器中时,它会打开相应的图像。

在搜索此问题时,我找到了

Images under "image/subfolder" cannot be found in the latest Razor Engine - MVC.NET

我检查了扩展名,一切正确。

有没有人有其他可能的解决方案?

提前致谢

2 个答案:

答案 0 :(得分:1)

C:\Users\thomas\Desktop\Freelauncher1005\Freelauncher\Files\image\C3-E1-B6-74.png

此类链接无法在网络浏览器/网页中使用。您需要具有来自网站根目录的相对路径或绝对路径。例子:

相对路径

<img src="/Files/image/C3-E1-B6-74.png" />

绝对路径

<img src="http://localhost/Freelauncher/Files/image/C3-E1-B6-74.png"/>

我不确定您是如何存储文件信息的,但如果您要包含完整的文件路径,则不适用于任何类型的托管网站。

答案 1 :(得分:0)

在数据库中我保存了绝对路径。这是完全错误的,要走的路是将文件名保存在数据库中并创建一个globalvariable,为我保存图像,这是:

string path = "~/Files/image/"

然后在剃刀页面中我可以调用全局变量并在它之后经过文件名...

<img src="~/Files/image/@file.FileLink" alt="test" />

ASP.net绝不会在本地计算机上搜索文件/图像,因此您必须始终使用相对路径,例如:〜/ Files / image /