0

我正在使用 CakePHP 3.4。

我有一个目录外的图像img,在files目录下webroot

我有一个files目录webrootcss, 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')工作正常。

为什么它不工作?此外,很容易为目录构建 urlcssimgjs

// 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像这样的目录构建 url

http://example.com/files/myfile.jpg
OR
// /files/myfile.jpg

img如何为,css和.以外的目录构建 url js

4

1 回答 1

0

我怀疑使用该路径作为 URL 是否可行,因为它是文件系统路径,这就是问题所在。HtmlHelper::image()仅支持 URL,相对的和绝对的(我想这方面的文档可以改进)。

默认情况下,相对路径应该是相对于/img/文件夹的。在您的情况下,您可以传递(网络)根相对路径,例如:

/files/myimage.jpg

如果要生成绝对 URL,请使用以下fullBase选项:

$this->Html->image('/files/myimage.jpg', ['fullBase' => true])

也可以看看

于 2017-04-16T18:57:50.907 回答