Orchard 1.7 - содержимое папок мультимедиа не указано в медиатеке

У меня проблема со списком изображений из каталога Media для моего сайта Orchard. При попытке добавить изображение с помощью нового средства выбора медиафайлов я вижу список папок, но когда я выбираю одну из них, содержимое не отображается (см. изображение ниже).

Если я «импортирую» изображение, оно появляется, но мне, конечно же, не нужно каждый раз импортировать каждый файл, который я когда-либо буду использовать, не так ли?

Я, должно быть, единственный человек, у которого есть эта проблема, потому что я не могу найти никаких упоминаний об этом где-либо еще в Интернете, поэтому заранее спасибо.

PS. Извините, если мой вопрос не совсем правильно сформулирован - это моя первая публикация....

Содержимое папки не размещено


person ed13    schedule 13.09.2013    source источник


Ответы (2)


Включите функцию обновления и перенесите оттуда свои медиафайлы в медиатеку. Это одноразовый процесс, после которого вы можете использовать медиатеку со всеми своими старыми медиафайлами.

person Bertrand Le Roy    schedule 19.09.2013

Хорошо, у меня тоже была эта проблема, и я только что решил ее. Основная проблема заключалась в том, что в базе данных сада были записи для медиафайлов, которых больше не существовало. Это произошло потому, что мы только что изменили наш проект, чтобы использовать хранилище Azure, а база данных по-прежнему указывала на образы, которые находились в других областях наших локальных жестких дисков. (Орчард нажимал метод, чтобы проверить, действительно ли существует большой двоичный объект, пытаясь получить его общедоступный URL-адрес, и если это не так, он выдает исключение.)

Я сделал две вещи, чтобы исправить это. Во-первых, я удалил все ссылки на старые изображения из базы данных. В таблице [Orchard_MediaLibrary_MediaPartRecord] в базе данных orchard есть все имена файлов. Вы можете проверить там, есть ли какие-либо ссылки на файлы, которые, как вы знаете, не существуют.

Во-вторых, поскольку над нашей CMS работает несколько разработчиков, но с использованием центральной базы данных, я беспокоился, что позже она снова сломается, когда мы добавим изображения в наши локальные файловые системы Azure. В итоге я зашел в файл AzureFileSystem.cs и изменил его, чтобы он возвращал пустую строку, а не выдавал исключение, если большой двоичный объект не найден:

Я изменил строки 297 и 298 на это:

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

Теперь, даже если он не может найти изображение, он все равно показывает те, которые МОЖЕТ найти.

Надеюсь это поможет. Возможно, вы не запускаете что-то через Azure, но вы все равно можете удалять записи из базы данных, которые там не нужны.

person Devin    schedule 13.09.2013
comment
Спасибо за ответ. Я надеялся, что у Orchard есть способ прочитать содержимое папки мультимедиа и заполнить библиотеку из нее (как это было раньше). Так что ваш ответ на самом деле не решает мою проблему, но удобен, потому что мне, вероятно, все равно придется пойти по этому пути. Ваше здоровье! - person ed13; 15.09.2013