2013-07-22 44 views
1

我设法一把umbraco成功升级,从4.0.3至4.11.10。我在旧版本和umbracoSettings.config文件中有100个xslt文件,我使用“UseLegacyXmlSchema”为true。除了当我在下面写了一个简单的剃​​刀宏,并且注意到@ photo.umbracoFile始终为空或空的时候,每件事都在起作用。我发现这篇文章http://allan-laustsen.blogspot.co.uk/2012/04/umbraco-razor-dynamicmedia-umbracofile.html,但解决方案有点混乱。我想知道有没有人可以帮忙呢?umbracoFile财产空

@using umbraco.MacroEngines 
@inherits umbraco.MacroEngines.DynamicNodeContext    
@{ 
//Check the currentpage has a value in the property 'photos' 
if (Model.HasValue("sliderImages")) 
{ 

    var MediaFolder = Library.MediaById(Model.sliderImages); 

      <ul> 

       @foreach (var photo in MediaFolder.Children) 
       { 
       <li > 
         <img src="@photo.umbracoFile" alt="@photo.Name" /> 

       </li> 
       } 

      </ul> 

     } 

}

+0

这已经发生,我偶尔,通常它是与检查有问题。重新保存媒体文件是为我修复的。通常我写一个脚本遍历它们并保存它们。 –

回答

0

高达4.7版本(我认为),一个Media项目的每个渲染做出了数据库的调用。模型更改为将所有媒体索引到Lucene索引中的方式与内容节点相同,然后每个图像渲染只是调用索引。这当然使它快得多。

在升级期间,媒体文件很可能没有索引。内容已经被索引,所以这不会是一个问题。所以,解决方案就是重新发布整个网站。这将确保内容引用的任何图像都被编入索引。

+0

感谢您的评论。我尝试了以下重新发布,但似乎没有任何区别。 – rumi

+0

HTTP://myDOMAIN/Umbraco/dialogs/republish.aspx XML =真 – rumi

+0

据我所知,只有重新发布内容节点,并且不包括媒体的节点? –

1

我知道这是旧的,但因为我只是碰到了我想我补充一点,重新发布媒体节点这个确切问题,唯一我找到的工作是整理和保存给定父节点,重新发布整个网站似乎只重新发布内容节点。我按字母顺序对遇到此问题的文件的父媒体目录进行排序,然后保存新的顺序 - 这允许再次在剃刀中引用.umbracoFile(即,受影响文件的属性不再为空,而是包含路径为预期)。

在我的情况<UseLegacyXmlSchema>已经设置为false,重建索引也不能工作。

+0

非常感谢这个解决方案!我只需要在我们的媒体树中的每个FOLDER上执行此操作。有很多文件夹。我现在很生气。你知道这个bug吗? –