コードの代わりに、パブリック パスに保存されている画像の URL を取得する方法は次のとおりです。(「image.png」を正しいファイル名に置き換えてください。)
$image_url = file_create_url(variable_get('file_public_path', conf_path() . '/files') . '/image.png');
コードでは、先頭にスラッシュを使用する必要があります。そうしないと、パスはサーバー ドキュメント ディレクトリからの相対パスと見なされません。
Drupal サイトの言語としてイタリア語を有効にしたとします。ページの URL はhttp://example.com/it/pageで、画像は sites/default/files/image.png に保存されます。スラッシュがない場合、画像の URL はブラウザーからはhttp://example.com/it/sites/default/files/image.pngと見なされます。スラッシュを使用すると、ブラウザからの画像 URL はhttp://example.com/sites/default/files/image.pngと見なされます。
ちなみに、「file_public_path」Drupal 変数のデフォルト値は ですvariable_get('file_public_path', conf_path() . '/files'
。これがsystem_file_system_settings()で使用されるデフォルト値です。
$form['file_public_path'] = array(
'#type' => 'textfield',
'#title' => t('Public file system path'),
'#default_value' => variable_get('file_public_path', conf_path() . '/files'),
'#maxlength' => 255,
'#description' => t('A local file system path where public files will be stored. This directory must exist and be writable by Drupal. This directory must be relative to the Drupal installation directory and be accessible over the web.'),
'#after_build' => array('system_check_directory'),
);