在Symfony Application中放置资产的位置以及如何在开发环境中工作

时间:2012-07-21 08:28:00

标签: symfony assetic

我目前正在玩资产和symfony。我使用压缩和重写,我决定将我的资产(主要是javascript文件和css文件)放在捆绑中,因为它似乎是最佳实践(确认将被赞赏)

在开发环境中,这项工作有一些配置,但我无法弄清楚如何生成编译资产。

我希望能够直接在src/domain_name/bundle_name/Resources/public/csssrc/domain_name/bundle_name/Resources/public/javascript修改我的资产,并且可以立即在开发环境中检查这些修改。

我使用命令php app/console assetic:dump --watch,但它似乎只检查了web/bundle/目录中生成的文件。

所以我需要继续运行命令php app/console assets:install web来复制资产。

事实上,这似乎是资产无法与捆绑符号(See last comment of kriss wallsmith here)一起使用的问题的结果。如果我能够使用该捆绑表示法,我想watch命令可以自动升级web目录中的资产,但不确定。

我如何引用树枝模板中的资源


{% stylesheets filter='?yui_css,cssrewrite' output='css/compiled/fullapplication.css'
    'bundles/bundle_name/third-party/jquery.mobile-1.1.1/jquery.mobile-1.1.1.css'
    'bundles/bundle_name/third-party/jquery.mobile-1.1.1/jquery.mobile.libri.theme.css'
    'bundles/bundle_name/third-party/jquery.mobile-1.1.1/jquery.mobile.structure-1.1.1.css'
    'bundles/bundle_name/css/global.css'
%}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

{% javascripts filter='?yui_js' output='js/compiled/fullapplication.js'
    'bundles/bundle_name/third-party/jquery/jquery-1.6.4.min.js'
%}
    <script src="{{ asset_url }}" >
{% endjavascripts %}

知道在开发环境中处理资产时如何提高效率?我们要等资产中的捆绑表示法功能吗?

1 个答案:

答案 0 :(得分:0)

将JS,CSS等直接放入bundle中是一种很好的做法,因为它们只用于该捆绑包。如果你有更普通的,也许最好将它们放在更一般的环境中(app?)
如果您想避免一次又一次地复制资产,可以使用--symlink选项(php app/console assets:install web --symlink)。
通过这种方式,每个对assets(如果不是)缓存的更改都可以直接用于应用。

对于表示法,您可以通过符号链接直接引用它们以避免使用bundle符号。