手动更改数据库后,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 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

更改 URL url 友好 [重复]

Umbraco image中使用Crop URL

如何更改字符串以使其对 URL 友好? [复制]

sql 检索具有挂起更改的Umbraco文档列表

sql 检索具有挂起更改的Umbraco文档列表

csharp 从301 Url Tracker迁移到Skybrud.Umbraco.Redirects