gpt4 book ai didi

c# - Umbraco 7.1.4 Media Manager,删除后Id存在

转载 作者:太空狗 更新时间:2023-10-30 01:18:54 25 4
gpt4 key购买 nike

我正在使用 visual studio 2012、C#/net 4.5、Umbraco 7.1.4。

媒体文件夹有问题。

我通过 CMS 删除了媒体文件夹中的图像和文件夹。

但是,当我这样做时,内容页面仍在尝试查找和使用这些图像。

所以我从所有媒体选择器中删除了所有链接。

仍然有问题,所以我检查了我的代码,它仍在寻找文件。

所以这一次我环顾四周并从回收站中删除。仍在尝试查找 ID。

然后我在窗口资源管理器中查看了文件夹本身,文件都在那里.....奇怪。所以我删除了所有这些。你猜怎么了?仍在尝试搜索媒体。我检查了我的解决方案资源管理器,是的,你猜对了,它仍然在那里!所以我也从那里删除了它。

因此,删除了所有媒体文件,删除了所有引用资料,删除了文件夹中的所有图像。

不应该有引用,没有图像。

但是你猜怎么着,我单步执行了以下代码,在 Umbraco 的某处它仍然有图像的 ID。

@if (Model.Content.GetPropertyValue("logo") != null)
{
var mediaItem = Umbraco.TypedMedia(Model.Content.GetPropertyValue("logo", true));
<img class="img-logo" src="@mediaItem.GetPropertyValue("umbracoFile")" width="100" height="50" alt=""/>
}

谁能告诉我这是怎么回事?

附加信息:

我发布了我的网站并将其通过 ftp 传输到我的开发服务器,数据库没有移动,因为我的本地副本和开发副本现在指向同一个数据库。这是一个测试,看看发布是否有效。

当我使用该网站时,虽然没有图像显示,但图像在文件夹中。我环顾四周,发现它很奇怪。所以我决定删除所有图像和引用资料,首先我删除了 cms 中的所有文件夹。然后我从内容中删除了所有引用。剩下的我说的都解释完了,无论我做什么它仍然试图找到这些该死的图像。

任何帮助都会很棒,因为我完全被困住了。

另外:应该提到

@if (Model.Content.GetPropertyValue("logo") != null)

最初是

@if (Model.Content.HasValue("logo"))

最佳答案

这可能有点令人困惑,但我可以在这里为您提供帮助。

当您保存图像时,它不会以与发布内容相同的方式发布它。有关写入数据库并由 Examine 索引的图像的信息。 UI 对图像的任何请求都会命中检查索引,而不是数据库和 XML 缓存。

当图像在 CMS 中删除(随后从回收站中删除)时,物理图像会保留在文件系统中,但记录会从数据库中删除。它也从检查索引中删除。

但是,当内容引用图像时,该引用会记录在数据库中,如果已发布,则会记录在站点 XML 缓存中。如果您随后从 CMS 中删除该图像,内容仍将引用该图像,而您自己却找不到它。如果您取消引用图像,您仍然需要发布内容以从 XML 缓存中删除引用。

在这种情况下,最好的方法是先取消引用您的图像,重新发布您的内容,最后删除图像。

关于删除后仍显示在 Visual Studio 中的文件,这是因为 .csproj 文件保留了对这些文件的引用。如果从 OS 中删除文件,则不会从 .csproj 文件中删除文件引用。同样,最佳做法是从 Visual Studio 中的项目中删除。

希望这对您有所帮助。我知道这似乎是 Umbraco 的问题,但你所经历的一切实际上都是它应该的样子。

关于c# - Umbraco 7.1.4 Media Manager,删除后Id存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25262273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com