【问题标题】:Drupal 7 image_style_url not creating the styled imageDrupal 7 image_style_url 未创建样式图像
【发布时间】:2018-06-20 11:48:58
【问题描述】:

我有以下代码在最新的drupal(v7.59)上测试image_style_url()

<img src=“<?= file_create_url($fileuri); ?>” />
<img src=“<?= image_style_url(“medium”, $fileuri); ?>” />

file_create_url() 可以正常显示原图,image_style_url() 只能给出样式图片的url,不能在样式图片文件夹中创建任何样式图片。

public://和/tmpdirectriea是777权限设置,所以不会和权限问题有关。

谁能告诉我我的 drupal 出了什么问题?

【问题讨论】:

    标签: image drupal drupal-7


    【解决方案1】:

    看来您必须先创建图像派生。通常,这在通过图像字段上传上传图像时会自动发生。但是自动派生创建可能会在文件字段上传时被跳过,或者在使用根本不由 Drupal 管理的其他图像时,或者在您已经上传图像后添加图像样式时。

    看看image_style_create_derivative($style, $source, $destination)。查看 cmets 以及 $style 需要是 image_style_load('MYSTYLE') 返回的数组。

    根据图像样式创建新的图像衍生。

    唯一未解决的问题是如何在调用该函数之前先检查派生项是否已经存在。也许你可以先检查file_exists(image_style_path($style_name, $file_uri)) 返回的内容。


    阅读更多:https://drupal.stackexchange.com/a/22555/15055

    【讨论】:

      【解决方案2】:

      您的 Drupal 没有问题。在有人访问使用该样式的列表之前,不会实际创建衍生图像。

      示例:您创建新节点并在其上上传图像。原始图像位于文件夹中。但是,如果您使用例如预告片图像样式并且如果您转到预告片文件夹,则在有人访问使用“预告片”图像样式的页面之前不会在那里创建图像。您可以在干净的 Drupal 上轻松测试它。基本上,图像是根据 HTTP 请求动态创建的。

      【讨论】:

      • 我确实在浏览器中测试了代码。并且 image_style_url() 没有创建任何样式图像
      • 当然没有,这就是我在之前的评论中告诉你的。要在图像上传而不是 HTTP 请求时立即生成派生,请使用 Imageinfo Cache 模块。 drupal.org/project/imageinfo_cache
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多