使用Symfony2在Twig Extension中包含资产


Include assets in Twig Extension with Symfony2

我想在Twig扩展中包含一些带有脚本文件的资产。例如,我想声明trick函数{{ init_project() }},但当我在我的trich函数'<script type="text/javascript" src="{{ asset('bundles/mybundle/js/script.js') }}"></script>'中写入时,它不起作用,它在浏览器的调试面板中返回404错误。那么我该怎么做呢?

查看'asset'分支函数:

您可以在'Symfony'Bundle'TwigBundle'Extensions'AssetsExtension中找到它

public function getAssetUrl($path, $packageName = null, $absolute = false, $version = null)
    {
        $url = $this->container->get('templating.helper.assets')->getUrl($path, $packageName, $version);
        if (!$absolute) {
            return $url;
        }
        return $this->ensureUrlIsAbsolute($url);
    }

不要在扩展中调用'{{asset}}',只需调用公共函数getAssetUrl()