2

Sitecore 6.5 ソリューションを Sitecore 7 にアップグレードしました。これは非常に基本的なサイトなので、大きな問題はありません。しかし、私は1つの問題に遭遇しました。

xsltで画像アイテムのsrcを取得したい場所がいくつかあります。私はこれをそのようにします。

sc:fld('myImage',.,'src')

これの出力は~/media/folder/myimage.ashx

しかし、何らかの理由でこれが機能しません。つまり、画像が表示されません。src をコピーして新しいタブで直接開こうとすると、Sitecore ログインにリダイレクトされます。また、イメージにはセキュリティ設定がありません。

次に、たとえば sc:image を使用すると、別の src が取得されることがわかりました。これは機能 /sitecore/shell/~/media/folder/myimage.ashx します。

何が起こっていて、どうすれば修正できますか? サイトの定義とデータフォルダーのパス以外に、web.config で何も変更していません。それ以外の場合は、完全に在庫があります。

4

3 に答える 3

0

多くの場合、混乱のポイントになるので、Sitecore がメディア リクエストを生成して処理する方法について見ていきましょう。これにより、sc:field() の「ボンネットの下」でどのように機能するかを理解できます。

まず、構成を確認します。MediaLinkPrefix は、HTML レンダリング時のメディア プレフィックスを指定します。

<setting name="Media.MediaLinkPrefix" value="~/media/" />

2 番目のステップでは、HTML が形成され、リンクが href 属性内に目的のメディア プレフィックスを含むとすぐに、次のステップとして、これらのリンクを処理するハンドラーを設定します。これは、customHandlers ノード内の次の構成設定で実行できます。

<handler trigger="~/media/" handler="sitecore_media.ashx" />

最後に、リクエストを処理する正確なコードにハンドラーを関連付ける必要があります。以下のように、httpHandlers ノード内で構成されます。

<add verb="*" path="sitecore_media.ashx" type="Namespace.ClassName, YourLibrary" />

MediaPrefix が相対リンクを生成している場合は、生成されたパスが Web サイトの相対的に正しいルートであることを確認してください。「/」で相対パスを開始すると、それが保証されます。

これでメカニズムが十分に説明されていることを願っていますが、Sitecore 内でどのように機能するかについてさらに質問してください。

乾杯!

于 2015-07-17T15:29:11.503 に答える