开发环境中不显示资产

时间:2016-12-23 13:21:22

标签: php css symfony assetic

我在HEAD块中有这个:

    {% stylesheets filter='yui_css' output='css/base.css'
            '@MutualContratosBundle/Resources/public/css/ui/south-street/jquery-ui.css'
            '@MutualContratosBundle/Resources/public/css/base.css'
             filter='cssrewrite' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}         

    {% block stylesheets %}{% endblock %}

    {% javascripts filter='yui_js' output='js/base.js'
            '@MutualContratosBundle/Resources/public/js/jquery-1.10.2.js'
            '@MutualContratosBundle/Resources/public/js/ui/jquery.ui.core.js'
            '@MutualContratosBundle/Resources/public/js/ui/jquery.ui.widget.js'
            '@MutualContratosBundle/Resources/public/js/ui/jquery.ui.menu.js' %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}       

当我加载app_dev.php页面时,不会显示所有资源。当我在firebug中看到这种资产正在试图加载时:

http://server/app_dev.php/css/base_jquery-ui_1.css

在生产环境中没有问题。当我部署和发布资源时,这个CSS被复制到web / css文件夹中:

http://server/app_dev.php/css/base.css

正如您在twig模板中看到的,我已经定义了输出参数。这就是为什么css有这个名字的原因。

如何在开发环境中解决这个问题?

这是symfony 2.3.2

1 个答案:

答案 0 :(得分:0)

资产不会自动转储。您必须通过控制台触发生成。

要将它们转储一次,请运行

app/console assetic:dump --force

您还可以运行后台任务,定期扫描资产以进行更改,并在修改后创建新转储。

当您仍在使用SF 2.3时,此后台任务的命令是

app/console assetic:dump --watch --force

请注意,不再维护SF 2.3。您应该升级到至少SF 2.7或2.8,即currently maintained long-term support versions

在较新版本的Assetic中,与较新的SF版本捆绑在一起,watch命令是

app/console assetic:watch --force