我在Blocks内容中添加了一些html代码并启用了完整HTML过滤器。
我已经为我的图片使用了相对路径,例如“sites / all / themes / zen / zen / image.png”
我想这是不正确的,因为我需要根据我在主页或“node / id”页面中更改路径。
我想我不能在块里面使用PHP,因此我不能使用$ base_url ...如何只用html添加图片路径?
感谢
答案 0 :(得分:9)
之前的答案提供了解决方案的一部分,但这里有一个更全面的独家新闻:
如果您的网站位于example.com(即它是“根”网站),那么在您的相对路径中添加正斜杠将解决此问题,正如其他人建议的那样:
<img src="/sites/all/themes/zen/zen/image.png">
但是,如果您的网站位于example.com/my-drupal-site
,那么您需要像这样写:
<img src="/my-drupal-site/sites/all/themes/zen/zen/image.png">
如果您可以使用PHP来确定适当的路径,那确实更好。如果您正在从主题调用图像,则可以使用Drupal函数drupal_get_path
来获取如下路径:
$img_path = drupal_get_path('theme', 'zen') . '/zen/image.png';
然后你可能真的是Drupaly,并使用theme_image
函数为图像生成HTML:
$img = theme('image', $img_path, 'My Image - Alt Text', 'My Image - Title Text');
$img
现在包含<img>
标记及其src
,alt
和title
属性的HTML。有关详细信息,请参阅drupal_get_path和theme_image的API文档。
正如jeffreymb所指出的,最简单的方法是使用WYSIWYG编辑器和一个名为IMCE的内置文件处理模块的组合来为您掩盖所有这些细节。 如果您无法访问“PHP代码”输入格式,这是最佳解决方案。
所以,步骤:
See this post了解有关该设置过程的更多详细信息,并确保阅读WYSIWYG模块在其配置页面上显示的文档。
一旦安装了IMCE并与WYSIWYG集成,当您单击WYSIWYG工具栏中的“图像”按钮时,应该会出现正常的对话框,但是有一个新的小图标可以打开IMCE文件浏览器。此文件浏览器允许您浏览files
文件夹中的图像或上传新文件。它还支持一定程度的图像处理,并在您选择图像后自动生成必要的HTML。
答案 1 :(得分:2)
我建议在这种情况下使用Pathologic module。它是一个过滤器,您可以将其添加到输入格式,以使用您网站的基本URL将相应的URL转换为正确的URL。此外,如果您的RSS内容中包含图像,因为重新发布内容的网站(如Feed聚合器等)具有指向完整网址的链接。
答案 2 :(得分:0)
我使用CKeditor和IMCE模块在我的网站上执行此操作。
它非常人性化,并且设置起来并不困难。
答案 3 :(得分:0)
使用绝对路径而不是相对路径。所以它是:
<img src="/sites/all/themes/zen/zen/image.png">
注意开头的斜线。斜杠应该是将现有的相对路径转换为绝对路径以便在直接HTML中使用时唯一需要做的事情。
答案 4 :(得分:0)
如果您使用斜杠(“/sites/all/themes/zen/zen/image.png”)启动图像路径,这将始终相对于您的drupal根目录。
你也可以选择“PHP代码”作为输入格式,并按照你的说法使用$ base_url。
答案 5 :(得分:0)
我使用cck blocks执行此操作。 cck块是drupal模块,它可以将drupal字段放入块中