Symfony2如何与JQuery一起使用?什么是资产转储?为什么?

时间:2012-08-19 18:13:39

标签: jquery symfony twig assetic

我是Symfony2框架的新手,在阅读以下文档之后仍然不太了解如何包含JQuery lib http://symfony.com/doc/current/cookbook/assetic/asset_management.html#dumping-asset-files

我见过类似的问题,但没有一个解释一切如何协同工作?为什么我们需要抛弃资产?为什么将它们包含在模板中是不够的?

基本上,我想要做的是将我的JQuery lib放在 app / Resources / js / 下 然后在我的任何我的任何软件包中的Twig模板中,我想引用/包含这个JQuery lib以便能够编写JQuery脚本代码。我是否需要修改 app / config / config.yml 文件?

请提供一个示例以及您的解释。以下是我到目前为止所做的事情(以下所有内容都在一个Twig模板中):

{% javascripts 'app/Resources/js/jquery-1.8.0.js' %}
<script type="text/javascript">
$(document).ready(function (){
    $('a').click(function(event){
        $('#box').fadeOut();
    });
}); 
</script>
{% endjavascripts %}

<div id="box">
    <a href="#">click me</a>
</div>

页面加载没有任何问题但是当我点击'click me'时,JQuery代码没有被执行!

1 个答案:

答案 0 :(得分:7)

您遗失了资产支持实施中的内容。你应该 做:

{% javascripts 'app/Resources/js/jquery-1.8.0.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
...

如果没有第二行,则实际上并没有加载jquery。

无论如何,资产的使用是可选的。如果你觉得不舒服,你不需要它提供的优化或者更喜欢使用更熟悉的东西,直到你掌握它,然后只需将jquery文件放在你的'web'文件夹中的某个位置(例如在一个js子文件夹下),然后像加载任何其他资产文件一样加载它:

<script src="{{ asset('/js/jquery-1.8.0.js') }}" type="text/javascript"></script>