我已经尝试了以下 Razor 代码:
@room.Media("summaryImage","umbracoFile")
但我得到类似 ~/media/155/lux.jpg
的东西,如何删除初始 ~
以获得服务器路径,即 /media/155/lux.jpg
或 http://some_url/media/155/lux.jpg
?
编辑:
我试过了
@{
dynamic summaryImagePath = room.Media("summaryImage","umbracoFile");
}
@Page.ResolveUrl(@summaryImagePath)
和
@Page.ResolveUrl(@room.Media("summaryImage","umbracoFile"))
但我一直收到错误:
Error loading Razor Script Cannot perform runtime binding on a null reference
即使 @room.Media("summaryImage","umbracoFile")
给出 ~/media/155/lux.jpg
。
有什么想法吗?
最佳答案
我不确定 Umbraco 中是否有解决方案,我只是使用 .NET 框架。对于 ASP.NET,您可以使用 MapPath将虚拟路径解析为物理文件路径:
@HttpContext.Current.Server.MapPath(room.Media("summaryImage","umbracoFile"))
编辑:
如果您正在寻找绝对 URL,您可以使用以下变体之一:
@Page.ResolveUrl(room.Media("summaryImage","umbracoFile"))
或
@VirtualPathUtility.ToAbsolute(room.Media("summaryImage","umbracoFile"))
您可能想阅读此 article about different approaches for resolving URLs .
关于razor - 如何使用 Razor 在 Umbraco 中获取绝对媒体文件路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6960105/