我在CakePHP 3.4中工作。
我在img
目录之外的files
webroot
目录中有一张图片
我在files
内有一个webroot
目录以及css
,img
,js
。
我尝试使用它像
$this->Html->image(WWW_ROOT . 'files' . DS . 'myimage.jpg')
创建路径为
/var/www/html/myproject/webroot/files/myimage.jpg
但这不显示图像。在另一个选项卡中复制和粘贴路径可以完美地加载图像。此外,将图像文件移动到img
目录并使用$this->Html->image('myimage.jpg')
工作正常。
为什么它不起作用?此外,很容易为目录css
,img
和js
建立网址
// Outputs http://example.com/img/icon.png
$this->Url->image('icon.png', true);
OR
// Outputs /img/icon.png
$this->Url->image('icon.png');
将导致
http://example.com/img/icon.png
我想为files
目录构建网址,如
http://example.com/files/myfile.jpg
OR
// /files/myfile.jpg
如何为img
,css
和js
以外的目录构建网址。
答案 0 :(得分:0)
我怀疑使用该路径作为URL是可行的,因为它是一个文件系统路径,以及问题出在哪里。 HtmlHelper::image()
仅支持网址,相对网站和网站网址(我猜这方面的文档可以改进)。
默认情况下,相对路径应相对于/img/
文件夹。在您的情况下,您可以传递(web)根相对路径,如:
/files/myimage.jpg
如果要生成绝对URL,请使用fullBase
选项:
$this->Html->image('/files/myimage.jpg', ['fullBase' => true])
另见