我通过Umbraco API向Umbraco 7.3网站添加了一些新内容,内容在后台和cmsContentXml缓存表中正确显示。问题是新内容没有出现在网站上,因为它不在umbraco.config文件中,如果我重新发布内容然后显示的整个网站。
我不希望用户必须重新发布该网站,因为内容应该自动为他们导入。我一直在尝试使用API重新生成缓存,但没有任何因素导致缓存文件更新。
我正在使用:
contentService.RePublishAll();
contentService.RebuildXmlStructures(new int[] { UmbracoNodeUtils.PEOPLE_DOCUMENT_TYPE_ID, UmbracoNodeUtils.EXPERTISE_DOCUMENT_TYPE_ID });
我还试过以下几行
umbraco.library.UpdateDocumentCache(createdNode.Id);
umbraco.library.RefreshContent();
但他们会在消息
中抛出异常Value cannot be null.\r\nParameter name: refresher.
有没有人知道如何通过API强制缓存更新,还是有比SaveAndPublishWithStatus更好的方式添加我的内容?
答案 0 :(得分:0)
事实证明,您无法使用控制台应用清除缓存文件。您可以做的是使用WebApi按https://our.umbraco.org/forum/developers/api-questions/39164-Console-Application-Publishing-Problem#comment-189720
清除缓存您可以创建一个包含以下内容的控制器:
var contentService = Services.ContentService;
contentService.RePublishAll();
umbraco.library.RefreshContent();