手动更改数据库后,Umbraco 友好 URL 不起作用
Posted
技术标签:
【中文标题】手动更改数据库后,Umbraco 友好 URL 不起作用【英文标题】:Umbraco friendly URL not working after manully change the database 【发布时间】:2011-02-24 13:41:54 【问题描述】:根据要求,我写了一些代码,基本上改变了文档的日期(umbraco 博客的文档)。
我已经更改了每个可以找到日期的地方,并且使所有日期都可以正常显示,并且我已经调整了路径以使其正确。
现在,umbraco.library.NiceUrl(id) 中指示的 url 不起作用,但以前的 url 仍然有效....只是想知道是否有任何文件“临时”或“永久”存储友好 url映射?如果是这样,我该如何修改?!
顺便说一句,umbraco 缓存文件存储在哪里?
顺便说一句,umbraco 4.0.3版,重启网站还是不行,修改文档标题会导致旧url的标题变了,但是新的url还是不行……
【问题讨论】:
【参考方案1】:进度报告和可能的解决方案。
在 /config/umbracoSettings.config 中
禁用缓存将完成这项工作, 基本上:
假的
这有点矫枉过正,但它暂时解决了我的问题...... (以上也需要重启网站,好像只禁用持久化到磁盘, url 本身仍然缓存在 Hashtable 中,请参阅: umbraco.presentation.requestHandler.cs)
好的,从文档中找不到,调试 umbraco 给了我以下工作代码:
umbraco.library.UpdateDocumentCache(docId);
var elem = umbraco.content.Instance.XmlContent.GetElementById(docId.ToString());
umbraco.content.Instance.XmlContent.GetElementById(origParentId.ToString()).RemoveChild(elem);
umbraco.content.Instance.XmlContent.GetElementById(parentId.ToString()).AppendChild(elem);
【讨论】:
【参考方案2】:Umbraco 仅在您重新发布整个网站或创建新内容时构建 URL。如果您右键单击内容区域中最顶部的内容节点,然后选择“重新发布所有”并按照应该重建整个 url 缓存的弹出窗口进行操作。
如果这能解决问题,请告诉我。
【讨论】:
我已经尝试过重新发布,并没有真正重新构建缓存或内存中的 xml(有时)这是我所期望的行为,没有检查源代码,我的上述解决方案好用,就是有点脏……以上是关于手动更改数据库后,Umbraco 友好 URL 不起作用的主要内容,如果未能解决你的问题,请参考以下文章