2013-03-18 4 views
2

В моем приложении Symfony2 я использую Zurb Foundation для создания моего макета. Это продолжает давать мне головные боли ... css работает очень хорошо, но js часто не работает. Файлы загружаются и сообщений об ошибках не сообщается (Zurb отлично выполняет свою работу), но, например, при нажатии на вкладках ничего не происходит.Использование Zurb Foundation и Symfony2

Я ожидаю найти ошибку при загрузке файлов фундамента через Assetic. Я не использую никаких фильтров, но мне нужно, чтобы Assetic загружал файлы из приложения \ resources \ public. Поскольку это не веб-папка, если я загружаю эти файлы напрямую, я получаю «запрещенный» -error.

Где вы размещаете свои глобальные css и js-файлы из Foundation в вашем приложении Symfony2? В комплекте или в общей папке, как я? Есть ли у вас какие-либо советы о том, как сделать этот запуск плавным?

EDIT: Кажется, что ни один из моих Zurb Foundation js не работает вообще, однако он загружен без ошибок. Документация по этому вопросу представляется очень редкой, если вообще существует.

+0

У вас есть решение для Foundation5 с Comapss в Symfony2, пожалуйста, проверьте этот вопрос: http://stackoverflow.com/questions/24075824/ foundation5-with-compass-and-assetic-in-symfony2? –

ответ

2

«Загрузка заказа» была ответом ... файлы js были прочитаны в неправильном порядке и это вызвало проблемы.

Это решение:

При связывании с вашими библиотеками Js, убедитесь, что вы говорите каждый файл по отдельности, так что вы можете определить порядок. Затем, ссылку на файлы app.js последние. Если вы этого не сделаете, все файлы будут найдены и правильно загружены, но они не будут использоваться Zurb Foundation. Если вы посмотрите на файл app.js, вы увидите, что он загружает библиотеки и возвращает null для каждой библиотеки, которая не найдена - в этот конкретный момент времени.

Таким образом, вместо того, чтобы ссылки на ваших JS-файлов, как это:

{% javascripts 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/*' 
%} 
<script src="{{ asset_url }}"></script> 
{% endjavascripts %} 

Делают это так:

{% javascripts 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.placeholder.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/modernizr.foundation.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/foundation.min.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.accordion.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.alerts.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.buttons.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.forms.js'  '@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.mediaQueryToggle.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.navigation.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.topbar.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.reveal.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.tabs.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/jquery.foundation.tooltips.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/app.js' 
'@UnknownblissZurbfoundationBundle/Resources/public/javascripts/*' 
%} 
<script src="{{ asset_url }}"></script> 
{% endjavascripts %} 

Таким образом, вы определить порядок загрузки вместо Symfony2. Тем не менее, это разумная идея закончить с помощью подстановочной ссылки, поэтому все, что вы, возможно, забыли, все равно будет связано.

Может показаться, что все дополнительные преимущества использования Assetic выбрасываются таким образом, но у вас все еще есть преимущество использования пространства имен и с помощью фильтра вы можете заставить Assetic сделать эти файлы в одном. Это ограничит количество требуемых запросов. Таким образом, единственным истинным недостатком является дополнительный код, необходимый ...

PS Заказ, указанный выше, отлично подходит для меня, но вы можете захотеть придумать собственный заказ.

2

Если вы все еще ищете более чистый способ, этот парень был достаточно хорош, чтобы сделать связку для Фонда, а также jQuery & Modernizr.

https://github.com/bmatzner/BmatznerFoundationBundle

Это все, что вам нужно:

<head> 
    //... 
{% block stylesheets %} 
<link href="{{ asset('bundles/bmatznerfoundation/css/foundation.min.css') }}" media="screen, projection" rel="stylesheet"/> 
{% endblock %} 
<script src="{{ asset('bundles/bmatznerjquery/js/jquery.min.js') }}"></script> 
<script src="{{ asset('bundles/bmatznerfoundation/js/foundation.min.js') }}"></script> 
</head> 

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

  • Нет связанных вопросов^_^