2015-07-21 2 views
0

Я новичок в symfony, у меня есть проблема, которая беспокоит меня в течение нескольких минут: Я хочу включить в свой проект JS-файл, но он не работает (ничего не происходит в браузер, например, не включен javascript). Я установил активы с консоли, и теперь css, изображения и JS-файлы хранятся в каталоге web/bundles. На мой взгляд, я писал:Symfony2 включает javascript файл

{% javascripts %} 
<script src = "http://code.jquery.com/jquery-2.1.3.min.js"></script> 
<script src="{{ asset('bundles\emagmagazine\js\javascript.js') }}"></script> 
{% endjavascripts %} 

Что я делаю неправильно?

ответ

0

Изменить свой javascript блок следующим

{% block javascripts %} 
    {% javascripts 
     'http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js', 
     '@emagmagazine/Resources/public/js/*' 
    %} 
     <script src="{{ asset_url }}"></script> 
    {% endjavascripts %} 
{% endblock %} 

Это правильный способ справиться с ними.

Вы забыли использовать правильный блок.
Кроме того, таким образом, assetic будет обрабатывать (скачать и сделать доступными) внешние JS вы звоните здесь

+0

что-то идет вправо wa y .. используя код u're на моей вкладке в сети, я получаю файл bundlesmagazinejsjavascript.js, но статус 404 – Osmiumbin

+0

теперь мой javascript найден, но я получаю 'Uncaught ReferenceError: $ не определен' – Osmiumbin

+0

@Osmiumbin, если ваши js включены , ясно, что это другая, другая проблема. Btw проверяет порядок включения вашей библиотеки jquery и других скриптов – DonCallisto

0

Я делаю это, как это в моих шаблонах:

{% javascripts "@asset_name_1" "@asset_name_2" %} 
    <script src="{{ asset_url }}"></script> 
{% endjavascripts %} 

asset_name_X имена активов в assetic конфигурации.

0

Вы управляете командой: php app/console assets:install web ???

редактировать: проверить с инспектором или поджигатель, если .js файл загружен

+0

Я запустил команду php app/console assets: install и я проверил с firebug, а js не загружен – Osmiumbin

0

Просто попробуйте sepecifying тип сценария:

<script type="text/javascript" src="{{ asset('assets/plugins/jquery/jquery.min.js') }}"></script> 

или добавить путь к вашей базе. html.twig если вы используете норму, и назвать его в сучок:

{% block javascripts %} 
{{ parent() }} 
{% endblock %} 
0

Как здесь написано: http://symfony.com/doc/current/cookbook/assetic/asset_management.html#including-javascript-files

Вы просто включить ваши файлы, такие как:

{% block javascripts %} 
    {% javascripts '@EmagmagazineBundle/Resources/public/js/*' %} 
     <script src="{{ asset_url }}"></script> 
    {% endjavascripts %} 
{% endblock %} 

для CDN файлов, лучшее, что вы можете сделать, это Жюст включают обычно нравится:

<script src="//code.jquery.com/jquery-2.1.3.min.js"></script>

Если вставить CDN в вашем {% javascripts %} он будет работать, но вы теряете полезность CDN, чтобы иметь общую библиотеку на разных веб-сайтах.

Смежные вопросы