我在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 。
由于
答案 0 :(得分:1)
您需要转储资产(= assetic会将所有这些资产合并为一个大文件)。在开发环境中,文件通过主控制器提供,并动态生成。部署应用程序时,应使用
转储资产php app/console assetic:dump --env=prod --no-debug
以便在文件系统上物理生成这些文件。 Read more in the Symfony docs.