我遇到问题,列出了我的Orchard网站的Media目录中的图像。 尝试使用新的媒体选择器添加图像时,我会看到文件夹列表,但是当我选择一个时,内容未列出(见下图)。
如果我'导入'它会出现一个图像,但我确实不需要导入我每次都要使用的每个文件,是吗?
我必须是唯一有此问题的人,因为我无法在网络上的任何其他位置找到任何引用,所以提前感谢。
PS。对不起,如果我的问题没有完美形成 - 这是我第一次发帖......
答案 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运行,但您仍然可以从数据库中删除不需要的条目。