Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image Sitecore-更新后图像URL中的前导斜杠_Image_Sitecore_Slash - Fatal编程技术网

Image Sitecore-更新后图像URL中的前导斜杠

Image Sitecore-更新后图像URL中的前导斜杠,image,sitecore,slash,Image,Sitecore,Slash,我们有一个从6.3更新的Sitecore 6.6 在6.3中,当从富格文本编辑器中的媒体库链接图像时,src生成的链接如下所示: src="/~/media/499880737CD24BF7A640E0DB2652C909.ashx?w=646&h=830&as=1" 效果很好 现在,在更新到6.6之后,src中添加了一个前导斜杠: src="//~/media/499880737CD24BF7A640E0DB2652C909.ashx?w=646&h=830&

我们有一个从6.3更新的Sitecore 6.6

在6.3中,当从富格文本编辑器中的媒体库链接图像时,src生成的链接如下所示:

src="/~/media/499880737CD24BF7A640E0DB2652C909.ashx?w=646&h=830&as=1"
效果很好

现在,在更新到6.6之后,src中添加了一个前导斜杠:

src="//~/media/499880737CD24BF7A640E0DB2652C909.ashx?w=646&h=830&as=1"
该图像在后端的富文本编辑器中可见,但在网站上不可见

那么这个前导斜杠是从哪里来的呢?我在谷歌上搜索并尝试了许多可能的解决方案,但到目前为止没有任何效果。我也检查了这个线程(),但是我的“Media.MediaLinkPrefix”已经是空的

编辑:

我刚刚检查了我们的6.3备份,映像src实际上如下所示:

src="/~/media/499880737CD24BF7A640E0DB2652C909.ashx?w=646&h=830&as=1"
src=“//hostname/~/media/499880737CD24BF7A640E0DB2652C909.ashx?w=646&
h=830&as=1”


丢失的主机名可能是问题所在吗?如果我手动添加它并将其放入浏览器,它会工作。

要解决此问题,请检查src生成和处理中涉及的以下设置:

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

...
...
如果它以斜杠开头-将其删除。还要检查为媒体链接指定前缀的设置:

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


最后,可以启用任何URL重写功能(或反向代理)来动态重写URL,但这是不太可能的。

我认为这可能是由于Sitecore 6.4+中媒体项URL呈现方式的改变

根据Sitecore John的说法,在6.4及以上版本中,媒体url前面加了一个斜杠,以解决SEO和IIS的一些问题。如果您已经有这样的代码:

mediaPath=Sitecore.StringUtil.EnsurePrefix('/',MediaManager.GetMediaUrl(mediaItem))
您现在将有两个斜杠,而不是一个

更多信息请点击此处:


我不知道你的安装有多新,或者你打算升级的时候,但我会考虑的。6.6已经很老了。考虑重载Link管理器和/或反编译SITECCOR.KENEL.DLL以查看它可能发生的位置。我知道后者不是一个小任务,但可能值得一看。您的web.config中与“媒体”相关的设置有什么奇怪的地方吗?Media.MediaLinkPrefix?您是否已检查您没有在其他位置设置Media.MediaLinkPrefix的修补程序包含文件(通过/sitecore/admin/showconfig.aspx检查)?您给出的示例来自RTE原始值,对吗?您的配置中似乎有此设置,或者使用了类似的自定义实现。我检查了/sitecore/admin/showconfig.aspx页面,Media.MediaLinkPrefix设置为“”,这应该可以,对吧?这些都是正确的设置,所以有点奇怪。更确切地说,确保showconfig中没有出现两次
Media.MediaLinkPrefix
(这就是补丁的工作方式)。否则,我可能会向Sitecore提出支持问题,因为他们可以获得更多访问您的环境的权限以帮助调试。这是否解释了RTE中出现这种情况的原因?正如@jammykam所暗示的,可能已经有代码在媒体URL转换器中添加斜杠,以处理6.4之前的问题(6.4+中未出现的问题),这需要删除。这可能是rte有额外斜杠的原因。检查了两个设置。两者都很好。