2012-03-09 16 views
2

私は以下のようにjsファイルを追加しようとしています。 symfony2:jsを追加しようとしています

{% extends "AcmeAcmeBundle::layout.html.twig" %} 

{% block javascripts %} 

    <script src="{{ asset('/js/foo.js') }}" type="text/javascript"></script> 
{% endblock %} 


{% block title %}Acme{% endblock %} 
が、それはロードされません:ファイル foo.jsroot_project/web/jsです。

EDIT:

{% extends "JanderJanderBundle::layout.html.twig" %} 
{% block javascripts %} 
    <script src="{{ asset('js/propuestas_public.js') }}" type="text/ 
javascript"></script> 
{% endblock %} 
{% block title %}JANDER | Porque queremos{% endblock %} 
{% block titH1 %}JANDER | Porque queremos{% endblock %} 
{% block metadesc %}Regístrate y participa en Jander{% endblock %} 
{% block pageid 'index' %} 
{% block content %} 
    <h2>Propuestas:</h2> 
    {% for propuesta in propuestas %} 
     {% include 'JanderJanderBundle:Jander:propuesta.html.twig' 
with { 'propuesta' : propuesta } %} 
    {% endfor %} 
    <form id="compsList" action="{{ path('admin_propuesta_new') }}" 
method="post" {{ form_enctype(formulario) }}> 
     {{ form_widget(formulario) }} 
     <input id="workersShow" type="submit" value="Enviar" /> 
    </form> 
{% endblock %} 
//////////////////////////// 
<!DOCTYPE html> 
<html lang="es"> 
    <head> 
     <meta charset="utf-8" /> 
     <title>JANDER | Porque queremos</title> 
     <meta name="description" content="Regístrate y participa en 
Jander" /> 
     <link rel="shortcut icon" href="/favicon.ico?v2" /> 
                   <link 
href="/css/combined/combined.css?v2" media="screen" rel="stylesheet" 
type="text/css" /> 
     <!--[if lt IE 9]> 
      <script src="http://html5shiv.googlecode.com/svn/trunk/ 
html5.js"></script> 
     <![endif]--> 
               <script src="/js/ 
combined/combined.js?v2" type="text/javascript"></script> 
    </head> 
    <body id="index"> 
     <header> 
      <div class="container_16"> 
        <h1><a href="/index_dev.php/">JANDER | Porque 
queremos</a></h1> 
     <nav> 
      <ul> 
            <li><a href="/index_dev.php/ 
registro"> 
         Regístrate 
        </a></li> 
           <li> 
              <a href="/index_dev.php/ 
ayuda">Ayuda</a> 
            </li> 
       <li> 
              <a href="/index_dev.php/ 
contacto">Contacto</a> 
            </li> 
          </ul> 
     </nav> 
      </div> 
     </header> 
     <div id="headerSubmenu"> 
        </div> 
     <div class="container_16"> 
       <div id="content" class="holder"> 
     <div id="scrollPane" class="scroll-pane"> 
       <h2>Propuestas:</h2> 
      <div class="propuesta"> 
        <div> 
       <span>jander clander</span> 
       <span>09/03/2012</span> 
       <span>trafico</span> 
      </div> 
      <div> 
       Esta es mi propuesta 
      </div> 
      </ul> 
</div>  <form id="compsList" action="/index_dev.php/admin/ 
propuesta/new" method="post" > 
     <div id="form"><input type="hidden" id="form__token" 
name="form[_token]" value="a12ae2d0b9a677a63c6e3cc121bf86fbbf37911c"/
><div><label for="form_propuesta" class=" required">Propuesta</ 

label><input type="hidden" id="form_propuesta" name="form[propuesta] 
[]" required="required" value="" /><input type="text" 
id="autocomplete_form_propuesta" name="autocompleter_form[propuesta] 
[]" required="required" value="" /><script type="text/javascript"> 
     var propuesta_choices = [{"label":"Esta es mi 
propuesta","value":1}]; 
     jQuery('#autocomplete_form_propuesta').live('keydown', 
function(event) { 
       if (event.keyCode === $.ui.keyCode.TAB && 
jQuery(this).data('autocomplete').menu.active) 
        event.preventDefault(); 
      }).autocomplete({ 
       source: propuesta_choices, 
       focus: function(event, ui) { return false; }, 
       select: function(event, ui) { 
            terms = this.value.split(/,\s*/); 
        terms.pop(); 
        terms.push(ui.item.label); 
        terms.push(''); 
        this.value = terms.join(', '); 
        terms = jQuery('#form_propuesta').val().split(/, 
\s*/); 
        terms.pop(); 
        terms.push(ui.item.value); 
        terms.push(''); 
        jQuery('#form_propuesta').val(terms.join(',')); 
           return false; 
      } 
     }); 
        var propuesta_source = 
jQuery('#autocomplete_form_propuesta').data('autocomplete').source; 
jQuery('#autocomplete_form_propuesta').autocomplete('option', 
'source', function(request, response) { 
       request.term = request.term.split(/,\s*/).pop(); 
       propuesta_source(request, response); 
      }); 
      </script></div></div> 
     <input id="workersShow" type="submit" value="Enviar" /> 
    </form> 
     </div> 
    </div> 
    <div id="lateral"><!-- Lateral derecho --> 
        <p>Bienvenido a <strong>Jander</strong>.</p> 
      <div class="usuario"> 
                <p>Introduce tus 
credenciales</p> 
        <a href="/index_dev.php/login" class="btn">Iniciar 
sesión</a> 
        <p>¿No estás registrado? <a href="/index_dev.php/ 
registro">Regístrate</a></p> 
          </div> 
      </div> 
     </div> 
     <footer class="clearfix"> 
          <p class="symfony2"> 
        Creado con <a href="http://www.symfony.com" 
target="_blank">Symfony2</a> 
       </p> 
       <p class="copy"> 
        <a href="/index_dev.php/privacidad"> Privacidad</ 
a> 
        <a href="/index_dev.php/condiciones"> Condiciones 
de uso</a> 
        <a href="/index_dev.php/copyright">&copy; 2012 - 
Jander</a> 
       </p> 
        </footer> 
    </body> 
</html> 

任意のアイデア:ここに私のコードとHTMLがありますか?

答えて

4

これは複数のjavascriptを追加するために私にとって役に立ちます:

{% block javascripts %} 
    {% javascripts 
     '@MyBundle/Resources/public/js/*', 
     '@SomeOtherBundle/Resources/public/js/special.js', 
    %} 
     <script type="text/javascript" src="{{ asset_url }}"></script> 
    {% endjavascripts %} 
{% endblock %} 

おそらく、あなたのjsファイルへの参照が間違っていますか?ファイルパスにbundles/mybundle/thefile.jsを使ってみましたか?

また、app/console assets:install [--symlink] webでバンドル資産をコピーすることを忘れないでください。あなたのファイルが公開されている "web"フォルダにあることを確認してください。

+0

[Assetic Bundle](http://symfony.com/doc/current/assetic/asset_management.html)が必要です。 – Trix

2

は、資産のパスに開始「/」を入れないでください:

{% block javascripts %} 
    <script src="{{ asset('js/foo.js') }}" type="text/javascript"></script> 
{% endblock %} 
+0

ありがとうございます。どちらも動作していません。私は多くのコードで質問を編集しました。 – ziiweb

+0

あなたは 'javascripts'ブロックを上書きしないことを確かですか? – AlterPHP

6

は、メインテンプレートのブロックの内容を取得するために、すべての子テンプレートに{{ parent() }}を追加することを忘れないでください:

{% extends "JanderJanderBundle::layout.html.twig" %} 
    {% block javascripts %} 
    {{ parent() }} 
    <script src="{{ asset('js/propuestas_public.js') }}" type="text/javascript"></script> 
    {% endblock %} 

と、あなたがメインテンプレートにjavacriptブロックを持っていることを確認してください。

関連する問題