0

Sitecore 6.5、DMS 2.0、および E コマース モジュールとサンプル サイト (v1.2) をクリーン インストールしています。サンプル サイトをインストールすると、ほとんどの画像が壊れているように見えます。レンダリングされる HTML には、/~/ で始まるパスを含む img src 属性が含まれます。例:

http://~/media/Images/Ecommerce/Examples/Products/Digital%20SLR/D200.ashx?w=250&as=1

これは、Sitecore の変更に対応するためにサンプル サイトがしばらく更新されていないか、サンプル サイトから返されるメディア パスの構成が存在するためであると推測しています。画像の書き込みに使用される XSLT レンダリングの例を次に示します。

<img id="product_shot" class="fix" alt="{sc:fld('alt',.)}" title="{sc:fld('alt',.)}" src="/{sc:GetMediaUrl(.)}?w={$ImageWidth}&amp;as=1" />

XSLT を使用しているときに、画像の URL が ~ でレンダリングされないようにする方法を知っている人はいますか? 初期セットアップと構成に何か問題がありましたか?

4

3 に答える 3

4

John West はここで素晴らしい内訳を提供しています: http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2012/12/Sitecore-Idiosyncrasies-Media-URLs.aspx

重要な情報は、「Media.MediaLinkPrefix」の構成です。パッチ ファイルを作成するか、Web.config を変更して別のものに変更することができます。私が読んだ場所では、人々はそれを単一のダッシュ「-/media」に変更しています

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <settings>
      <setting name="Media.RequestExtension">
        <patch:attribute name="value"></patch:attribute>
      </setting>
      <setting name="Media.MediaLinkPrefix">
        <patch:attribute name="value">-/media</patch:attribute>
      </setting>
    </settings>
    <customHandlers>
      <handler trigger="-/media/" handler="sitecore_media.ashx"/>
    </customHandlers>
  </sitecore>
</configuration>
于 2013-01-09T06:41:38.617 に答える
0

私が考えることができる別の解決策は、次のように web.config を変更することです。

InvalidItemNameChars: Add “~“

しかし、これは画像だけでなく、Sitecore コンテンツ ツリーにあるすべてのコンテンツ アイテムに対しても機能します。

于 2013-01-09T14:13:40.147 に答える
0

これは、解決策というよりも回避策です。これはデモ用に設定しているので、問題なく動作します。

web.config でMedia.MediaLinkPrefix、ホスト名メディア プレフィックスを含めるように値を変更しました。Sitecore E コマース サンプル サイトの XSLT レンダリングは へのすべての呼び出しを文字で開始しsc:GetMediaUrl(.)/それsc:GetMediaUrl(.)自体が最初の文字を として返すため/、これにより src 属性値が完全なホスト名で書き込まれ、正しく解決されます。

<img src="//sitecore.local/~/media/Images/Ecommerce/Examples/Products/Digital%20SLR/D200.jpg/>

理想にはほど遠いですが、これらの目的のために、この回避策はうまくいきました。

于 2013-01-09T19:21:40.640 に答える