无法弄清楚 symfony 资产如何与 lessphp 结合使用

Can't figure out how the symfony assets works in combination with lessphp

我刚开始研究 symfony 框架。 我用 symfony 创建了一个起始应用程序,并想用它安装 bootstrap 3.3.5。 我发现它没有按预期工作。 下一步我安装了 Leafo Less.php。 为了添加对 bootstrap > 3.2 的支持,我安装了 oyejorge/less.php 和 leafo lessc 编译器的包装器。

我在 config.yml 中注册了以下几行:

资产配置

assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    bundles:        [ ]
    #java: /usr/bin/java
    filters:
        lessphp:
            file: %kernel.root_dir%/../src/HomeBundle/Assets/Filter/lessc.php
            apply_to: "\.less$"
            # Formatter options: compressed, lessjs, classic
            formatter: "compressed"
            preserve_comments: false
        cssrewrite: ~

到目前为止命令有效。 下一步是,根据 http://isometriks.com/using-less-with-symfony2 的解释告诉我我需要引用样式 sheet。 所以我在模板中添加了内容:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>{% block title %}Welcome!{% endblock %}</title>
        {% block stylesheets %}{% endblock %}
        <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
        {% stylesheets '@HomeBundle/Resources/less/bootstrap.less' %}
            <link rel="stylesheet" href="{{ asset_url }}">
        {% endstylesheets %}
    </head>
    <body>
        {% block body %}{% endblock %}
        {% block javascripts %}{% endblock %}
    </body>
</html>

每次调用控制器时,我都会收到消息:

呈现模板期间抛出异常("Unable to generate a URL for the named route "_assetic_5bb3373_0“因为这样的路由不存在。”)在第 8 行 base.twig。

不知道我做错了什么。 我的错误在哪里? 感谢任何帮助。

使用 Assetic 时需要使用 "app/console assetic:dump" 命令生成 css/less/js 文件。这也会将它们复制到 web 文件夹以供访问。

调用此命令后,请检查 web/css 文件夹以查看您编译的 less 是否在其中。

如果你不是运行开发环境(在你的url中使用app_dev.php)那么你需要在运行命令[=17=时指定生产环境]