1

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 が認識しないのはなぜですか?

4

1 に答える 1

1

ノードを再発行することを確認する必要があります。これにより、作成したデータベース エントリからノードが取得され、データを提供するときに umbraco が実際に使用する XML キャッシュに格納されます。

于 2012-10-03T14:30:10.383 に答える