1

我刚开始研究 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上的解释告诉我我需要引用样式表。所以我在模板中添加了内容:

<!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>

每次我打电话给控制器时,我都会收到消息:

在第 8 行的 base.twig 中呈现模板期间引发了异常(“无法为命名路由“_assetic_5bb3373_0”生成 URL,因为此类路由不存在。”)。

不知道我做错了什么。我的错误在哪里?任何帮助表示赞赏。

4

1 回答 1

1

使用 Assetic 时,您需要使用“app/consoleassetic:dump”命令来生成 css/less/js 文件。这也会将它们复制到 web 文件夹以使其可访问。

一旦你调用了这个命令,检查 web/css 文件夹,看看你编译的 less 是否在那里。

如果您没有在开发环境中运行(在您的 url 中使用 app_dev.php),那么您需要在运行命令“app/consoleassetic:dump --env=prod”时指定生产环境

于 2015-07-29T08:11:16.270 回答