image_style_url不会创建图像[已关闭] -- 7 领域 和 theming 领域 和 media 领域 drupal 相关 的问题

image_style_url doesn't create images [closed]


12
vote

问题

中文
此问题似乎在帮助中心中定义的范围内涉及Drupal。。

想要改进这个问题?更新问题,所以它是关于drupal答案的主题。

关闭 5年前

改善这个问题

我正在使用 image_style_url 获取我通过管理员界面添加的图片的缩略图。

  // $foo->field_picture['und'][0]['uri'] has value public://foo.jpg image_style_url('foo-thumb', $foo->field_picture['und'][0]['uri']);   

API状态指出映像将在请求URL时创建。但是,在访问页面时,未显示图像(404)。从函数返回的URL似乎是很好的,但文件尚未创建。

'foo-thumb'文件夹位于公共数据文件夹中,文件权限应该是OK。我尝试刷新图像缓存(Drupal Image-Flush foo-thumb),但仍然没有结果。

任何想法?

英文原文

I am using image_style_url to get a thumbnail of a picture I added through the administrator interface.

// $foo->field_picture['und'][0]['uri'] has value public://foo.jpg image_style_url('foo-thumb', $foo->field_picture['und'][0]['uri']); 

The API states that the image will be created when the URL is requested. However, when visiting the page the image isn't displayed (404). The URL returned from the function seems to be well formed, but the file hasen't been created.

The 'foo-thumb' folder is in the public data folder and the file permissions should be OK. I tried flushing the image cache (drupal image-flush foo-thumb) but still no results.

Any ideas?

        

回答列表

23
 
vote
vote
最佳答案
 

from: https://drupal.org/drupal-7.20-release-notes

此外,以编程方式生成链接到的任何代码 图像导数而不使用标准图像_style_url()API 如果图像还没有,功能将不再正常工作 存在于文件系统中,因为必要的令牌不会是 存在于URL中。

,你可以做到这样的事情;

  $image_uri      = $node->field_image[LANGUAGE_NONE][0]['uri']; // or any public://my_image $style          = 'my_style'; $derivative_uri = image_style_url($style, $image_uri); $success        = file_exists($derivative_uri) || image_style_create_derivative(image_style_load($style), $image_uri, $derivative_uri);  $new_image_url  = file_create_url($derivative_uri);   
 

From: https://drupal.org/drupal-7.20-release-notes

In addition, any code which programmatically generates a link to an image derivative without using the standard image_style_url() API function will no longer work correctly if the image does not already exist in the file system, since the necessary token will not be present in the URL.

Instead you can do something like this;

$image_uri      = $node->field_image[LANGUAGE_NONE][0]['uri']; // or any public://my_image $style          = 'my_style'; $derivative_uri = image_style_url($style, $image_uri); $success        = file_exists($derivative_uri) || image_style_create_derivative(image_style_load($style), $image_uri, $derivative_uri);  $new_image_url  = file_create_url($derivative_uri); 
 
 
         
         
7
 
vote

一个常见错误是URI不正确格式化。检查您的URI参数是否以 public:// 为前缀。

不良练习

  $imageUrl = image_style_url('style_name', 'myimage.jpg'); $imageUrl = image_style_url('style_name', $node->field_x[$node->language][0]['filename']);   

这将URL输出到样式图像(使用映像令牌),但在之前未生成的情况下不会生成样式图像。


良好做法

  $imageUrl = image_style_url('style_name', file_build_uri('myimage.jpg')); // changes to 'public://myimage.jpg' $imageUrl = image_style_url('style_name', $node->field_x[$node->language][0]['uri']);   

此输出样式URL,如上所述,如果没有存在,则生成样式图像。

 

One common mistake is that URIs are not properly formatted. Check that your URI parameter is prefixed with public://.

Bad Practice

$imageUrl = image_style_url('style_name', 'myimage.jpg'); $imageUrl = image_style_url('style_name', $node->field_x[$node->language][0]['filename']); 

This outputs a URL to the styled image (with image token), but does not generate a styled image when it hasn't been previously generated.


Good Practice

$imageUrl = image_style_url('style_name', file_build_uri('myimage.jpg')); // changes to 'public://myimage.jpg' $imageUrl = image_style_url('style_name', $node->field_x[$node->language][0]['uri']); 

This outputs a styled URL, like the above, and generates a styled image if none exists.

 
 
1
 
vote

公共文件系统路径错误。

 

The public file system path was wrong.

 
 
1
 
vote

另一个选项是使用主题函数。

  $img = theme('image_style', array('style_name' => 'your_image_style_machine_name', 'path' => $node->field_image['und'][0]['uri']));   

而不是返回它将返回IMG的HTML。

 

Another option is to use the theme function.

$img = theme('image_style', array('style_name' => 'your_image_style_machine_name', 'path' => $node->field_image['und'][0]['uri'])); 

Rather than returning the URL it will return the html for the img.

 
 
1
 
vote
  $fid = file_load($field_yuorfield_fid);           $image_uri = image_style_url('yuor_style', $fid->uri); fopen($image_uri, 'r');   

此处可以使用URL来创建HTML

 
$fid = file_load($field_yuorfield_fid);           $image_uri = image_style_url('yuor_style', $fid->uri); fopen($image_uri, 'r'); 

here can use url for create html

 
 
0
 
vote

确保您有 foo-thumb 样式,可以在 admin/config/media/image-styles

image_style_url < / a>是样式名称,不是文件夹名称。

 

Make sure you have foo-thumb style, you can check at admin/config/media/image-styles.

The first parameters of image_style_url is a style name, not a folder name.

 
 
       
       
0
 
vote

如果在尝试查看图像时收到404,则可能性是图像样式名称不正确。在我的情况下,在图像样式中显示的样式名称不是样式名称的机器名称。在悬停在样式上时,URL将显示样式名称的机器名称。要么将其更改为机器名称或删除当前和重新创建所需的名称。

 

If you receive a 404 when trying to view the image, a possibility is that the image style name is not correct. In my case, the style name that showed up in Image Styles was not the machine name of the style name. When hovering over the style the url will display the machine name of the style name. Either change it to the machine name or delete the current and recreate with the name needed.

 
 

相关问题

0  在哪里放置脚本以提供ajax / json响应?  ( Where to put a script to provide ajax json response ) 
我正在使用drupal 7.我想创建一个使用drupals db抽象层来查询数据库并吐出JSON数据的PHP脚本。我会在哪里放置这样的脚本?目前,我通过创建一个新的节点,然后在 function theme_process_page() theme/template.php 的 function theme_pro...

0  用户关系请求在具有接受和拒绝链接的视图块中  ( User relationship requests in a view block with accept and decline links ) 
我有一个节点,其中我想要向用户展示所有关系请求当前用户已经接收到下面的状态链接,以便用户可以接受或拒绝请求,然后在不需要转到的情况下无聊的Drupal默认用户关系页面。我显然是使用用户关系模块为此目的。无论如何,我举行了创建一个观点,但在滋补足够后,我无法这样做。我能做的就是获得所有关系请求的列表(也是由登录用户制作...

2  有没有办法在悬停在它的链接上时动态地显示页面?  ( Is there a way to show a page dynamically when hovering on its link ) 
只是想知道是否有模块或某种方式一般来说,执行以下操作: 在页面链路上悬停时,将该页面的内容显示为工具提示或某种小型下拉窗口。 谢谢。 ...

1  样式图像没有显示  ( The styled image is not displaying ) 
我在drupal 7中创建了一个缩略图,如鼠司机7(glossy_footer_sublogo).Also我已经编写了一个模块,该模块有一个块,以显示我主题的"logo.png" 文件,并由'glossy_footer_sublogo'style转换。启用块和清除缓存后,虽然在我的样式目录中创建的"站点/全部/主题/...

0  我需要一个如下所示的Ajax推车:  ( I need an ajax cart like these below ) 
已经有一个项目或某种东西已经集成了类似于:的购物车 http://interface.eyecon.ro/demos/cart.html 或jcart的集成: http://conceptlogic.com/jcart/ 我试过ubercart,但尽管事实上是一个矫枉过正,它不像这样工作。 ...

1  将导入的字符串转换为数组  ( Convert imported strings into array ) 
我已使用 _locale_import_read_po 函数导入 .pot 文件,如下所示: $po_files = file_scan_directory('/', '/.*.pot$/'); if (count($po_files)) { require_once DRUPAL_ROOT . '/incl...

0  如何在视图中添加带有用户字段图像的配置文件封面? [关闭]  ( How to add a profile cover with a user field image in a view ) 
关闭。这个问题需要详细信息或清晰度。它目前不接受答案。 想要改进这个问题?添加详细信息并阐明编辑此帖的问题。 关闭 2年前。 ...

0  更新引导7.30至7.35时出错  ( Error when updating bootstrap 7 30 to 7 35 ) 
im在更新从7.30到7.35的站点引导主题后驾驶Drupal 7项目的根目录时获取以下错误。 Notice: Undefined index: element in bootstrap_menu_link() (line 22 of /Users/Chris/Sites/iss-mw/sites/all/th...

1  在提交处理程序之前,表单提交渲染渲染页面  ( Form submit post renders page before submit handler is called ) 
我在标题中有一个搜索表单,只需将搜索词添加到当前URL。如果您在 example.com/list-page 并提交搜索时,它只会将 example.com/list-page?search=my-term-here 。 当我提交表单时,我注意到必须在调用表单的提交处理程序之前呈现完整页面。由于搜索修改了当前列表页面...

1  将分类图像插入节点  ( Inserting taxonomy images into nodes ) 
在Drupal 7中,我添加了一个新的分类词汇表,然后将新的字段(图像字段)添加到与图像(徽标)的这个词汇表和术语中。在内容类型中,我添加了一个新字段(术语引用)。但在节点中,我只能看到分类学术语的标题。如何从分类术语将Imagefield插入节点? ...

5  在Drupal 7中,我如何只有在查看前页面时才能包含CSS文件?  ( In drupal 7 how can i include a css file only when the front page is being view ) 
我想仅在查看前页面时包含特定的CSS文件,因为它只适用于前页,并且它是一个相对大的文件。我知道解决方案将涉及使用 drupal_add_css()我不确定在我的主题 theme/template.php3 文件中的位置。我的主题内有特定的钩子,我应该实施它吗?谢谢。 编辑:我基本上有代码,我只是不确定我的主题文件可以...

1  在视图列表节点中显示节点注释的分组视图  ( Displaying grouped view of node comments in a view listing nodes ) 
我创建了一个列出了许多节点的视图。我已经添加了"节点注释" 的关系,然后将注释添加为视图中的字段。我所拥有的问题是,如果节点上有多个注释,则视图列出多次节点。例如,当前视图显示此名称 Node Title: Title 1 Nid: 1 Node Image: Image Comment: Comment 1 ...

0  如何防止使用饲料和Elysia Cron导入困扰  ( How to prevent that import with feeds and elysia cron gets stuck ) 
我有几个 feeds ,由 elysia cron 。 在给定时间调用饲料,后面的最后两个饲料每2分钟称为,因为它是防止它们停止的唯一方法。但是,当数据的大小和复杂性增加时,Cron过程被停止,因为最后一个馈送中的一个或两个都被卡住,永无止境。 我已经看到,通过更新数据库表 elysia_cron 通过将字段 run...

0  从其他页面显示在弹出窗口中的自定义模块内容  ( Displaying custom module content in a popup from other page ) 
我有一个自定义模块,它显示关于现实的列表和信息。如何在从其他页面展示弹出窗口中展示Realty的图像? 在例子中,我在Realty / 566上有关于Realty的信息,可以查看realtyimages / 566的图像/ 566 ...

3  主题实体参考输出  ( Theme entity reference output ) 
我有一个名为simpleenewsletter的内容类型,它具有名为 field_newsletter_content 的实体参考字段。多个文章与一个SimpleNewsletter节点链接。在管理SimpleNewsletter的显示下,我可以管理要显示的字段。 但我有一个情况,我只需要显示某些字段,而不是所有字...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有