【发布时间】:2011-01-08 19:55:30
【问题描述】:
在包含自定义模块的目录中,我有一个包含图像的目录。
如何获取这些图片的 URL?
【问题讨论】:
在包含自定义模块的目录中,我有一个包含图像的目录。
如何获取这些图片的 URL?
【问题讨论】:
drupal_get_path('module', $module_name);
【讨论】:
如上所述,最简单的方法是使用站点根目录的相对路径:
'/' . drupal_get_path('module', $module_name) . '/img1.jpg'
在开头不使用斜杠会在多个级别别名上破坏它,例如http://www.your_site.dev/category/2012/11/02/
【讨论】:
drupal_get_path() 没有前面的斜线把我搞砸了。
// path
drupal_get_path('module', $module_name) . '/images';
file_create_url(drupal_get_path('module', $module_name)) 。 '/图像';
【讨论】:
file_create_url 将始终与 default/files 而不是模块目录相关,因此 URL 最终会像 your_site.dev/sites/default/files/sites/all/modules/your_module/… 一样,这是不正确的。
file_code_url 将返回 /sites/default/files 下的 URL。谢谢。
要获取图片的正确 URL,您需要在图片路径的开头附加 base_path()。正确的网址是:
$url = base_path() . drupal_get_path("module", "MY_MODULE") . "/image.png";
【讨论】:
适用于 Drupal 7 和 8 的更完整示例。所有其他答案仅显示如何返回模块的路径,而不是如何实际生成 URL。
<?php
$module_path = drupal_get_path('module', 'mymodule');
$image_path = "$module_path/images/img1.jpg";
$image_url = file_create_url($image_path);
【讨论】: