0

我有一个全新安装的 Sitecore 6.5、DMS 2.0 以及电子商务模块和示例站点 (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

约翰韦斯特在这里给出了一个很好的细分:http ://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2012/12/Sitecore-Idiosyncrasies-Media-URLs.aspx

重要信息是“Media.MediaLinkPrefix”的配置。您可以创建一个补丁文件,或修改您的 Web.config 以将其更改为其他内容。我读过的地方有人把它改成一个破折号“-/媒体”

<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 电子商务示例站点 XSLT 呈现sc:GetMediaUrl(.)以一个/字符开始所有调用,并且sc:GetMediaUrl(.)它本身将其第一个字符返回为 a /,这导致 src 属性值被写入完整的主机名,然后正确解析:

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

远非理想,但出于这些目的,这种解决方法起到了作用。

于 2013-01-09T19:21:40.640 回答