2016-09-15 1 views
0

В ZF2, я пытаюсь загрузить CSS и JS-файл только один раз.Zend framework - как добавить CSS и JS только один раз в заголовке без дублирования?

Но когда я отрисовываю страницу, они загружаются два или три раза и заставляют сайт быть очень медленным.

На реальной странице у меня есть bootstrap.css 2 раза, style.css 2 раза, а файлы JS также 2, 3 раза.

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8" /> 

    <?= $this->headTitle(); ?> 
    <?= $this->headMeta(); ?> 

    <!-- CSS --> 
    <?= $this->headLink()->prependStylesheet('/v2/css/bootstrap.css'); ?> 
    <?= $this->headLink()->prependStylesheet('/v2/css/style.css'); ?> 

    <!-- JS --> 
    <?= $this->headScript()->prependFile('/v2/js/jquery-3.1.0.min.js') ?> 
    <?= $this->headScript()->prependFile('/v2/js/global.js') ?> 

</head> 

ответ

1

Вы эхом отдаете объект на каждой линии; удалите все <?= и замените одним вызовом эхо.

<head> 
    <meta charset="utf-8" /> 

    <?= $this->headTitle(); ?> 
    <?= $this->headMeta(); ?> 

    <!-- CSS --> 
    <?php 
    $headLink = $this-headLink(); 
    $headScript = $this->headScript(); 

    $headLink->prependStylesheet('/v2/css/bootstrap.css'); 
    $headLink->prependStylesheet('/v2/css/style.css'); 

    $headScript->prependFile('/v2/js/jquery-3.1.0.min.js'); 
    $headScript->prependFile('/v2/js/global.js'); 

    echo $headLink; 
    echo $headScript; 
    ?> 
</head> 
+0

Работая сейчас. Благодарю. – YumYumYum

1

Самый простой способ заключается в цепи него, как это:

<!doctype html> 
<html> 
<head> 
    <meta charset="utf-8" /> 

    <?= $this->headTitle(); ?> 
    <?= $this->headMeta(); ?> 

    <!-- CSS --> 
    <?= $this->headLink()->prependStylesheet('/v2/css/bootstrap.css') 
     ->prependStylesheet('/v2/css/style.css'); ?> 

    <!-- JS --> 
    <?= $this->headScript()->prependFile('/v2/js/jquery-3.1.0.min.js') 
     ->prependFile('/v2/js/global.js'); ?> 
</head> 

Это способ сделать, например, в ZendSkeleton layout.