13

我刚刚选择了 Orchard 来建立我的博客。作为我努力创建这个新博客的一部分,我正在创建一个自定义主题。这个自定义主题同时具有 CSS 和图像。

我的问题

我的问题基本上归结为:如何渲染作为主题一部分的图像?

到目前为止我尝试过的

我尝试使用以下内容:

<img src="@Html.ThemePath("/Content/Header.jpg")" alt="Logo"/>

但这并不好。它返回以下 HTML 标记:

<img src="~/Themes/FizzyLogic/Content/Header.jpg" alt="Logo"/>

这不完全是它应该返回的内容。我希望它能够返回我网站内图像的绝对路径。

4

2 回答 2

25

有几种方法可以实现这一目标。最好的方法是将 URL 传递给Url.Content(...)辅助方法,如下所示:

    <img src="@Url.Content(Html.ThemePath(WorkContext.CurrentTheme, "/Content/Header.jpg"))" />

这将为您的内容呈现正确的路径。您也可以像Html.ThemePath(WorkContext.CurrentTheme, "/Content/Header.jpg").Skip(1 ) 那样去掉前导波浪号 (~) ,这将为您提供相对于应用程序根目录的路径,但那是虽然不是一个好的解决方案。

于 2011-04-17T14:04:48.123 回答
3

您当然也可以使用 Html.Image 助手。

@Html.Image(Html.ThemePath(WorkContext.CurrentTheme,"/Content/Header.jpg"), "Alt Text", null)

谢谢你 - 也只是拿起果园。

于 2012-11-04T23:03:18.683 回答