考虑模板:
公司
该Company模板有两个字段设置的标准值.如果我们获取一个Company项目并使用Glass保存它而不进行任何更改,则该Logo字段不再使用标准值.(该Company Name领域未受影响.)
似乎问题是,该Glass.Mapper.Sc.DataMappers.SitecoreFieldImageMapper字段的值序列化与Sitecore不同.当它试图保存时,它认为这是对字段的更改,不再使用标准值.
标准值:
<image mediaid="{GUID}" />
Run Code Online (Sandbox Code Playgroud)
玻璃生成的价值:
<image height="64" width="64" mediaid="{GUID}" alt="Alt text" />
Run Code Online (Sandbox Code Playgroud)
有没有办法让Glass生成与Sitecore相同的输出?
我们刚刚更新了我们的项目以使用Glass.Mapper V3.我们喜欢它.但是我们遇到了一个问题.它似乎不尊重语言后备.
我们设置了我们的站点,这样如果用户选择非默认语言,他们将看到该语言的项目(如果存在).如果没有,他们将看到默认("后备")语言版本.我们还在字段级别进行了设置,因此如果项目的非默认版本但未更改所有字段,则任何未更改的字段都将回退到该字段的默认语言版本的值.
我们可以做些什么来使Glass能够使用语言回退吗?
更新2: 我仍在努力让服务器上的Icon保存.
我在做什么:
Item item = Sitecore.Context.Database.GetItem(imageId);
var imageIconUrl = Sitecore.Resources.Images.GetThemedImageSource(item.Appearance.Icon, ImageDimension.id32x32);
if (!string.IsNullOrEmpty(imageIconUrl))
{
// download the icon from the url
var iconFullPath = "e:\\pngIcons\\excelIcon.png";
var webClient = new System.Net.WebClient();
var downloadPath = "http://serverName/" + imageIconUrl;
webClient.DownloadFile(downloadPath, iconFullPath);
}
Run Code Online (Sandbox Code Playgroud)
该变量downloadPath包含以下字符串:
http://serverName/sitecore/shell/themes/standard/~/media/E503BA48C89B422D8400393F1C7086A7.ashx?h=32&thn=1&w=32&db=master
Run Code Online (Sandbox Code Playgroud)
最后我可以看到的是一个png文件,但它没有任何内容.我还复制了变量中的字符串downloadPath并将其粘贴到浏览器中,我可以看到如下图标:
请让我知道我做错了什么.或者我如何保存图标.谢谢!!
原始问题:
sitecore媒体项目有一个字段" Media".我在说这个:
我想访问这个字段.原因是:
如果我用例如访问它,item.GetMediaStream()那么我将获得完整的文件.我只是想在服务器上保存这个小图标.可能吗 ?
问题
有没有办法限制默认为每个 Sitecore 站点创建的 MediaCache 文件夹的大小?Sitecore 6.2 文档说这是不可能的,但我们使用的是 6.4.1。
背景
我们有一个网站,该网站部署到三个负载平衡的 Sitecore 服务器。其中一台服务器专门由我们的 Search Appliance 用于为我们的网站内容编制索引。由于它比普通用户更快地浏览我们的网站并消耗更多的数据,我们网站的 MediaCache 文件夹 (/App_Data/MediaCache/website) 填满了该 Web 服务器上的磁盘。我想我们可以在该服务器上完全禁用媒体缓存,但如果可能,我们更愿意在每个 Web 服务器之间保持相同的配置。
想法?