Our Umbraco コミュニティサイトでも次の質問をしましたが、今のところうまくいきません。
クライアントの Umbraco サイトに表示されるメディア イメージ ファイルのデータベース レコードを手動で追加する必要があるタスクがあります。
私のSQLは次のもので構成されています:
- 画像の umbracoNode にレコードを追加します。
- cmsContent にレコードを追加する
- cmsContentXml にレコードを追加する
- 画像の umbracoFile、umbracoWidth、umbracoHeight、umbracoBytes、umbracoExtension のレコードを cmsPropertyData に追加する
上記を実行して Umbraco にログインすると、メディア領域に画像が表示され、すべて問題なく表示されます。
問題は、その画像を表示したいときに @Model.MediaById() (Razor ファイル内) を呼び出すことです。img 'src' 属性が設定されていないため、基本的に画像は表示されません。
Umbraco コードを調べたところ、問題が見つかりました。基本的に、コードが Lucene を使用してメディア (ExaminedBackendMedia.GetUmbracoMedia()) を検索すると、画像ファイルが見つかりますが、SearchResult に欠落しているフィールドがいくつかあります。たとえば、cmsPropertyData に追加された「umbraco*」プロパティはどれもフィールド コレクションに表示されません。別の画像 (手動で追加されたもの) のコードをステップ実行すると、すべての「umbraco*」プロパティを含む、フィールド コレクションに 5 つほどの追加のプロパティが表示されます。
ここでデータが欠落していることがわかります。基本的に、SearchResult オブジェクトにはいくつかのフィールドがありません。誰かが私が見逃したかもしれないものを提案できますか? SQL スクリプトで追加した「umbraco*」プロパティを Lucene が認識しないのはなぜですか?