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 に答える