Image 将细枝模板呈现为字符串,添加自定义资源路径
我们的项目允许用户创建自定义主题文件。由于项目的结构,我们必须呈现这些文件并保存输出。该项目使用Symfony2 为了呈现这个细枝模板并将输出保存到另一个文件中,我使用了一个以@templating为参数的服务 services.yml对服务的定义如下:Image 将细枝模板呈现为字符串,添加自定义资源路径,image,symfony,twig,assets,Image,Symfony,Twig,Assets,我们的项目允许用户创建自定义主题文件。由于项目的结构,我们必须呈现这些文件并保存输出。该项目使用Symfony2 为了呈现这个细枝模板并将输出保存到另一个文件中,我使用了一个以@templating为参数的服务 services.yml对服务的定义如下: theme_renderer: class: ApiBundle\Service\ThemeRenderer arguments: [ @templating ] public function __construct(Twi
theme_renderer:
class: ApiBundle\Service\ThemeRenderer
arguments: [ @templating ]
public function __construct(TwigEngine $templateEngine) {
$this->templateEngine = $templateEngine;
}
public function renderTheme($filePath, $themeSettings) {
...
$renderedFileContents = $this->templateEngine->render($sourceFilePath, $themeSettings);
...
}
这给了我一个TwigEngine对象,我可以像这样使用它:
theme_renderer:
class: ApiBundle\Service\ThemeRenderer
arguments: [ @templating ]
public function __construct(TwigEngine $templateEngine) {
$this->templateEngine = $templateEngine;
}
public function renderTheme($filePath, $themeSettings) {
...
$renderedFileContents = $this->templateEngine->render($sourceFilePath, $themeSettings);
...
}
这个很好用
但是,如果模板包含{{asset('images','some_image')}}标记,则呈现失败。例外情况是:
An exception has been thrown during the rendering of a template ("There is no "some_image" asset package.") in "<template_file_path_here>" at line 2
在第2行的“”中呈现模板时引发异常(“没有“some_image”资产包”)
我需要能够为asset()标记的呈现提供一个自定义(CDN)URL。我该怎么做呢?我认为异常消息
没有“some_image”资产包。
很清楚。asset
函数的第二个参数是包名。模板组件的包在framework.templating
键在Symfony配置(etc.config.yml)下定义
然后你可以使用
asset('my_image.jpg','avatars')
。所以,我假设您没有定义包某些映像,或者配置不正确。它是如何失败的?您能提供更多信息吗?您应该添加更多信息,如服务定义、Symfony版本和错误本身(可能是异常)。@kba我已经添加了相关的异常和服务定义。Symfony版本是2.6.9