【发布时间】:2018-02-06 20:06:41
【问题描述】:
所以,我正在创建一个 ASP.NET(MVC5) 应用程序,我想在其上使用 img 标记显示图像:
<img src='@Url.Content(Path.Combine(Server.MapPath("~/Products-Data"), product.Name, product.ThumbnailImage))' />
问题是没有浏览器实际加载图像。有趣的是剃须刀引擎生成的链接是有效的,如果我从另一个浏览器选项卡打开它,我可以看到图像。经过一番搜索,我注意到在 chrome 控制台中,出现了这个错误:
我发现了很多关于此错误的主题(更改 web.config 中的设置,使用 --allow-file-access-from-files 标志和等),但这些都没有真正起作用。这将是一个真实的应用程序......但目前我需要在本地测试它,并检查一切是否正常。伙计们,这里有什么工作吗?
【问题讨论】:
-
在您的控制器中获取您的照片地址,然后使用 viewbag 或其他东西发送它,然后您在控制器中跟踪问题。
-
为什么要使用引用本地文件系统的路径?为什么不是 HTTP(S) URL?
-
不要将
Server.MapPath用于将在客户端(在浏览器中)解析的虚拟路径。只需使用虚拟路径。Url.Content已经处理了任何必要的路径映射/生根。这里开发环境和生产环境没有区别。
标签: c# asp.net asp.net-mvc razor asp.net-mvc-5