我已从模板to allow for the use of SVG icon sprites中删除了base_tag。这样做的副作用是主页上的页面上的图像中断。
HTMLEditorField::saveInto()
方法强制图片上的相对网址,最终指向/some-page-other-than-home/assets/image.jpg
,这是错误的。
如何将图像解析到根/assets/
目录而不是指向/some-page-other-than-home/assets/
。
答案 0 :(得分:1)
SilverStripe在某些方法上提供了extension hooks。 HTMLEditorField有一个'processImage' hook,您可以使用它。
您可以使用以下方法挂钩此方法:
<强> 1。创建您的扩展程序配置。
/mysite/_config/Config.yml
HtmlEditorField:
extensions:
- HTMLEditorFieldExtension
<强> 2。创建一个HTMLEditorFieldExtension类。
/mysite/code/HTMLEditorFieldExtension.php
<?php
class HTMLEditorFieldExtension extends DataExtension
{
// This method name must be the same as the extension hook
public function processImage($image, $img) {
// Get the image src attribute
$src = $img->getAttribute('src');
// Concatenate a leading slash
$img->setAttribute('src', '/' . $src);
}
}
第3。运行dev / build。
这需要这样做,因此SilverStripe可以找到新的扩展名。在此之后,您的图像现在应该缺少前导斜杠。