Orchard 1.7 - 媒体文件夹中未列出的媒体文件夹的内容

时间:2013-09-13 10:32:23

标签: orchardcms orchardcms-1.7

我遇到问题,列出了我的Orchard网站的Media目录中的图像。 尝试使用新的媒体选择器添加图像时,我会看到文件夹列表,但是当我选择一个时,内容未列出(见下图)。

如果我'导入'它会出现一个图像,但我确实不需要导入我每次都要使用的每个文件,是吗?

我必须是唯一有此问题的人,因为我无法在网络上的任何其他位置找到任何引用,所以提前感谢。

PS。对不起,如果我的问题没有完美形成 - 这是我第一次发帖......

Folder contents not lsited

2 个答案:

答案 0 :(得分:4)

启用“更新”功能,然后从中将媒体迁移到媒体库。这是一次性过程,之后您可以将媒体库与所有旧媒体一起使用。

答案 1 :(得分:1)

好的,我也遇到了这个问题并且修好了。根本问题是果园数据库中存在不再存在的媒体文件的记录。这是因为我们刚刚将项目更改为使用Azure存储,而数据库仍指向本地硬盘驱动器其他区域中的图像。 (Orchard正在尝试检查blob是否在尝试获取其公共URL时确实存在,并且如果没有,则会引发异常。)

我做了两件事来解决它。首先,我从数据库中删除了所有对旧图像的引用。 orchard数据库中的表[Orchard_MediaLibrary_MediaPartRecord]具有所有文件名。您可以在那里查看是否有任何您知道不存在的文件的引用。

其次,由于有多个开发人员在我们的CMS上工作,但使用中央数据库,我担心随后我们将图像添加到我们的本地azure文件系统时它会再次中断。我最终进入AzureFileSystem.cs文件并修改它以返回空字符串,而不是在找不到blob时抛出异常:

我将第297和298行更改为:

try
{
    Container.EnsureBlobExists(String.Concat(_root, path));
    return Container.GetBlockBlobReference(String.Concat(_root, path)).Uri.ToString();
}
catch
{
    return "";
}

现在,即使它找不到图像,它仍会显示它可以找到的图像。

希望这会有所帮助。您可能无法通过Azure运行,但您仍然可以从数据库中删除不需要的条目。