CakePHP 3.8 - 如何访问视图中 webroot 的 public 路径?

CakePHP 3.8 - How to access public path to webroot in view?

从 2.3.x 迁移到 3.8,在我看来,我不知道如何访问 Webroot 的 public 路径。以前我可以这样做:

<link rel="stylesheet" type="text/css" href="<?php echo $this->webroot ?>wp-dist/acd76cde.css" />

但是当我在 3.8 上尝试这个时,它说:

Error: webrootHelper could not be found.

我尝试了 html 帮助器,但找不到仅提供 public webroot 路径的帮助器方法。例如image()是相对于webroot/imgcss()是相对于webroot/css等等。

我是不是漏掉了什么?

你走在正确的轨道上,你应该使用 HTML 助手。

对于CSS:

<?= $this->Html->css('wp-dist/acd76cde.css'); ?>

仅供参考,在内部这是使用 config/app.php:

中定义的选项
$pathPrefix = Configure::read('App.cssBaseUrl');

所以在理论中,如果您手动需要相同的路径,您也可以从配置中读取它们 - 但您应该只是坚持使用 HTML 助手,这正是它的用途。

From the Docs:

更新:

正如@ndm 在上面的评论中所说,以下内容对我也适用。

echo $this->Html->css('lightweight_lpbbd374e3', ['pathPrefix' => 'wp-dist/']);

我的原始解决方案,同样有效

$this->Url->webroot 终于对我有用了。所以我包括我的 css 如下:

<link rel="stylesheet" type="text/css" href="<?php echo $this->Url->webroot('wp-dist/lightweight_lpbbd374e3.css'); ?>" />

除非有人提出更好的方法,否则我会继续使用它。