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

mkh*_*ata 1 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 / Then下我的任何一个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 %}
Run Code Online (Sandbox Code Playgroud)

<div id="box">
    <a href="#">click me</a>
</div>
Run Code Online (Sandbox Code Playgroud)

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

Car*_*dos 7

您缺少资产支持实施中的内容.你应该做:

{% javascripts 'app/Resources/js/jquery-1.8.0.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
...
Run Code Online (Sandbox Code Playgroud)

没有第二行,jquery实际上没有加载.

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

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

  • 如果您不想使用assetic,只需将它们放在Web文件夹的js子文件夹中,并将它们包含在用于jquery的语句中:<script src ="{{asset('/ js/another-file .js')}}"type ="text/javascript"> </ script> (2认同)