私はこれに出くわし、これを処理するためのコードを書かなければなりませんでした。
これtheme_image_style()
により、ページリクエストの実行中に効果的にクローンが作成され、画像派生物が作成されます。生成は、通常であれば404をトリガーするセキュリティの問題を回避しますが、最初にページにアクセスしたときに遅いページを意味します。
私はパブリックファイルスキーマのみを使用していますが、プライベートファイルスキーマベースのスタイルでは失敗することを期待しています。
/**
* Implements hook_theme().
*/
function MODULE_theme() {
return array(
'remote_image_style' => array(
'variables' => array(
'style_name' => NULL,
'path' => NULL,
'width' => NULL,
'height' => NULL,
'alt' => '',
'title' => NULL,
'attributes' => array(),
),
),
);
}
/**
* Returns HTML for an image using a specific image style.
*
* Clones theme_image_style() with the additional step of forcing the creation
* of the derivative to bypass any 404 issues.
*/
function theme_remote_image_style($variables) {
// Determine the dimensions of the styled image.
$dimensions = array(
'width' => $variables['width'],
'height' => $variables['height'],
);
image_style_transform_dimensions($variables['style_name'], $dimensions);
$variables['width'] = $dimensions['width'];
$variables['height'] = $dimensions['height'];
$image_style_dest_path = image_style_path($variables['style_name'], $variables['path']);
if (!file_exists($image_style_dest_path)) {
$style = image_style_load($variables['style_name']);
image_style_create_derivative($style, $variables['path'], $image_style_dest_path);
}
$variables['path'] = file_create_url($image_style_dest_path);
return theme('image', $variables);
}