3

Sitecore 6.5 を実行していて、画像フィールドとそのテンプレートに基づくアイテムを含むデータ テンプレートがあります。サイトには 2 つの言語がありました。

En バージョンと Fr バージョンのアイテムでバージョン管理されたイメージ (メディア ライブラリ内の En バージョンと Fr バージョンの 1 つのアイテム) を使用する場合、サイトを公開し、クエリ文字列 sc_lang=en または fr を使用してサイトの言語を切り替えます。画像以外のページの変更。

しかし、2 つの異なる画像 (メディア ライブラリ内の 2 つのアイテム) を使用すると、言語を切り替えるときに正しい画像が読み込まれます。

なぜこれが起こるのか、何か考えはありますか?

ありがとうT

アップデート

共有オプションを使用しようとしましたが、うまくいきませんでした。また、クエリ パラメータを追加して Enter キーを押すと、ページは正しい言語に変わりますが、更新ボタンを押すまで画像は変わりません。キャッシュの問題のようですが、バージョン管理されたイメージでのみ発生するのはなぜですか。

4

2 に答える 2

3

生成されたURLのクエリ文字列に言語が含まれていないという点で、 <sc:image />andコントロールにバグがあるようです。FieldRenderer

あなたはこのようなことを試すことができます:

<asp:Literal ID="image" runat="server"><img src="{0}" /></asp:Literal>

Sitecore.Resources.Media.MediaUrlOptions options = new Sitecore.Resources.Media.MediaUrlOptions
{
    Language = Sitecore.Context.Language
};
Sitecore.Data.Fields.ImageField imgField = (Sitecore.Data.Fields.ImageField)Sitecore.Context.Item.Fields["Image"];
string url = Sitecore.Resources.Media.MediaManager.GetMediaUrl(imgField.MediaItem, options);
image.Text = string.Format(image.Text, url);
于 2011-12-07T21:04:10.773 に答える
1

Sitecore サポートはこれがバグであることを確認しており、一時的な回避策は次のとおりです。

  1. フォルダーにコピーSitecore.Support.320556.dllwebsite\binます。dll はまだ SDN にありません。http://tareknasser.com/projects/sitecore/Sitecore.Support.320556.dll

  2. web.config ファイルで、次のノードを見つけてコメントアウトします。

<processor type="Sitecore.Pipelines.RenderField.GetImageFieldValue, Sitecore.Kernel"/>

コメントされたものの直後に次のものを追加します。

<processor type="Sitecore.Support.Pipelines.RenderField.GetImageFieldValue, Sitecore.Support.320556"/>

これは、公開サイトとページ エディターの両方で機能しました。

于 2011-12-12T15:39:38.457 に答える