tuschkan
(O Turansky)
June 29, 2011, 6:32am
1
Хотелось бы разобраться, каким образом лучше всего сделать загрузку jquery.js по всему проекту?
В блоге в примеме на странице контакты происходит загрузка
<script type="text/javascript" src="/assets/3d9484f9/jquery.js"></script>
<script type="text/javascript" src="/assets/3d9484f9/jquery.yiiactiveform.js"></script>
Видимо загрузку jquery.js вызывает yiiactiveform. Но, после перехода с контактов на другу страницу, jquery.js боле не загружен и все сркипты, которым он нужен - не работают.
Мне нужно в main.php сделать загрузку
Yii::app()->clientScript->registerScriptFile('/js/jquery.js', CClientScript::POS_HEAD)
или нужно загружать с папки assets?
И не будет ли возникать конфликтов, если загрузка jquery.js будет происходить дважды, или с разных фалов?
Thanks!
napeHeK
(Napehek)
June 29, 2011, 7:00am
2
config/main.php
<?php
return array(
'components' => array(
'clientScript' => array(
'scriptMap' => array(
'jquery.js' => false,
)
),
...
Далее просто подключи jQuery в своём layout до тега title…
<script type="text/javascript"
src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<title>....</title>
или как ты сказал зарегистрируй jQuery…
Yii::app()->clientScript->registerScriptFile('/js/jquery.js', CClientScript::POS_HEAD)
Можно ещё как-то сделать, более правильно, через сам Yii, но я обычно так делаю.
tuschkan
(O Turansky)
June 29, 2011, 7:14am
3
я вот так сделал:
Yii::app()->getClientScript()->registerCoreScript('jquery');
и заработало. Пока не разобрался, почему …
napeHeK
(Napehek)
June 29, 2011, 7:34am
4
Это и есть тот правильный вариант. Но я предпочитаю загружать jQuery c гугла…
tuschkan
(O Turansky)
June 29, 2011, 7:41am
5
ну а не будет конфликтов, если грузить с папки js, а фреймворк подгрузит с папки assets, например, на странице контакты, как я описывал выше. Ели Yii проверяет, загружен ли такой файл?
napeHeK
(Napehek)
June 29, 2011, 8:51am
6
Вот так Yii загрузит jQuery только один раз.
Yii::app()->getClientScript()->registerCoreScript('jquery');
Для тех, кто предпочитает загружать jquery с гугла, в коде
'scriptMap' => array(
'jquery.js' => false,
)
вместо false поставьте адрес Api