Symfony2 LessPHP在开发环境中运行良好,但在prod环境中运行不正常

时间:2014-01-24 17:38:20

标签: symfony lessphp

我在Symfony2下有一个使用LessPHP的网站。在开发环境中一切正常。 当我点击http://mylocalsite/app_dev.php/时,浏览器会显示http://mylocalsite/app_dev.php/css/XXXX_myFile_1.css

但是,当我点击http://mylocalsite/时,浏览器会尝试访问http://mylocalsite/css/XXXX_myFile_1.css并收到404错误。

prod.log只包含此

[2014-01-24 12:08:46] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /css/XXXX_myFile_1.css"" at /the/path

config.yml

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

树枝模板

{% stylesheets '@ProjectMyBundle/Resources/less/myFile.less' %}
    <link rel="stylesheet" href="{{ asset_url }}">
{% endstylesheets %}

修改

我做了php app/console assetic:dump --env=prod --no-debug,它给了我一个web/css/XXXX.css文件。但浏览器仍在寻找名为XXXX_myFile_1.css的文件。

我尝试像这样设置输出

{% stylesheets output='css/myFile.css'
    '@ProjectMyBundle/Resources/less/myFile.less' %}
    <link rel="stylesheet" href="{{ asset_url }}">
{% endstylesheets %}

执行php app/console assetic:dump --env=prod --no-debug另一次给了我一个web/css/myFile.css文件。但现在浏览器正在寻找一个名为myFile_myFile_1.css的文件。

ANSWER

use_controller必须在config.yml文件中设置为 true

由于

1 个答案:

答案 0 :(得分:1)

您需要转储资产(= assetic会将所有这些资产合并为一个大文件)。在开发环境中,文件通过主控制器提供,并动态生成。部署应用程序时,应使用

转储资产
php app/console assetic:dump --env=prod --no-debug

以便在文件系统上物理生成这些文件。 Read more in the Symfony docs.