Lithium 视图中的内联 SVG

Inline SVG in Lithium View

锂的新手。

我正在尝试在 Lithium 视图中内联 SVG 文件。

在以前的 PHP 框架中,我将执行以下操作:

<?php echo file_get_contents('images/styleguide/left-arrow.svg'); ?>

在 Lithium 中,这将引发一个关于查找文件位置的非常严重的错误:

Warning: file_get_contents(images/styleguide/left-arrow.svg): failed to open stream: No such file or directory in //app/resources/tmp/cache/templates/template_styleguide_index.html_17440333_1480885998_1509.php

由于这个位置,我想知道这样做的 "lithium way" 是什么(如果有的话)。

我找到了解决方法(如果有更好的解决方法请补充)。

使用媒体 class 获取根目录或您的静态文件:

use lithium\net\http\Media;

$webrootPath = Media::webroot(true);

使用这个你可以得到文件内容:

$watchRound = file_get_contents($webrootPath.'/images/styleguide/watch-round.svg');

然后内联它:

<button class="toolbar__btn js-styleguide-viewport-watch-round">
  <?php echo $watchRound; ?>
</button>