1

Orchard サイトのメディア ディレクトリから画像を一覧表示する際に問題が発生しました。新しいメディア ピッカーを使用して画像を追加しようとすると、フォルダーのリストが表示されますが、いずれかを選択しても内容が表示されません (下の画像を参照)。

画像を「インポート」すると表示されますが、毎回使用するすべてのファイルをインポートする必要はありませんよね?

この問題を抱えているのは私だけに違いありません。ウェブ上のどこにも参照が見つからないためです。よろしくお願いします。

PS。私の質問が完全に形成されていない場合は申し訳ありません-初めての投稿です....

フォルダの内容が表示されない

4

2 に答える 2

4

更新機能を有効にして、メディアをそこからメディア ライブラリに移行します。これは、すべての古いメディアでメディア ライブラリを使用できるようになる 1 回限りのプロセスです。

于 2013-09-19T05:07:13.200 に答える
1

わかりました、私もこの問題を抱えていましたが、修正しました。根底にある問題は、オーチャード データベースに、もはや存在しないメディア ファイルのレコードがあったことです。これは、Azure ストレージを使用するようにプロジェクトを変更したばかりで、データベースがまだローカル ハード ドライブの他の領域にあったイメージを指していたためです。(Orchard は、パブリック URL を取得しようとしているときに、BLOB が実際に存在するかどうかを確認するメソッドをヒットし、存在しない場合は例外をスローしました。)

私はそれを修正するために2つのことをしました。まず、データベースから古い画像への参照をすべて削除しました。果樹園データベースのテーブル [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 を介して何かを実行していない場合でも、存在する必要のないエントリをデータベースから削除できる場合があります。

于 2013-09-13T16:59:34.667 に答える