我在这个asp.net mvc 3项目上工作,到现在为止我们使用本地资源来模拟现实生活中的数据。现在由于项目的进展,所有资源(就这个问题而言都是图像)被移动到删除服务器上的目录。
所以直到现在我在剃刀视图中使用此代码才能在屏幕上显示图像:
<img src= "@Url.Content("~/Content/" + Model[i].FieldValue)" alt="Logo" />
现在我必须使用新目录,在我尝试更新代码时可以看到的路径,并使其与新设置保持一致
<img src= "@Url.Content("\\\\85.53.1.107\\East\\upload\\"+Model[i].FieldValue)" alt="Logo" />
所以实际地址是\\85.53.1.107\East\upload\
。更改代码以继续显示图片的正确方法是什么?就像现在一样,我只看到没有它扩展名的图像名称。
答案 0 :(得分:1)
我认为您应该使用网络服务器(如
)对网址进行http请求"http://85.53.1.107/East/upload/"
我还会将此路径放在webconfig文件中,所以每次我必须使用图像时都不必重复此操作,可能使用自定义网址扩展,因此调用看起来像:
<img src="@Url.ImagePath(Model[i].FieldValue)" />
使用此扩展程序:
public static class UrlExtensions
{
public static string ImagePath(this UrlHelper helper, string imageFileName)
{
return helper.Content(string.Format("{0}/{1}", ConfigurationManager.AppSettings["ImagesBasePath"], imageFileName));
}
}
和webconfig文件中的密钥:
<configuration>
<appSettings>
...
<add key="ImagesBasePath" value="http://85.53.1.107/East/upload/" />
</appSettings>
</configuration>
如果您的应用程序有权访问85.53.1.107服务器,您可以使用服务器名称设置密钥:
<add key="ImagesBasePath" value="\\NAME_OF_SERVER\East\upload\" />