$ this-> headLink()包括重复的脚本

Moo*_*oon 3 css zend-framework

就像我之前做的那样,我将以下代码用于我的新项目.

<?=$this->headLink()->appendStylesheet('/Layouts/admin/css/button.css');?>
<?=$this->headLink()->appendStylesheet('/Layouts/admin/css/inputText.css');?>
<?=$this->headLink()->appendStylesheet('/Layouts/admin/css/fancyTable.class.css');?>
Run Code Online (Sandbox Code Playgroud)

当我打开网站并查看源代码时,会有重复的css链接标记.

<link href="/Layouts/admin/css/button.css" media="screen" rel="stylesheet" type="text/css" ><link href="/Layouts/admin/css/button.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/Layouts/admin/css/inputText.css" media="screen" rel="stylesheet" type="text/css" ><link href="/Layouts/admin/css/button.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/Layouts/admin/css/inputText.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/Layouts/admin/css/fancyTable.class.css" media="screen" rel="stylesheet" type="text/css" >

<link href="/Layouts/admin/css/button.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/Layouts/admin/css/inputText.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/Layouts/admin/css/fancyTable.class.css" media="screen" rel="stylesheet" type="text/css" >
<link href="/Layouts/admin/css/divine.css" media="screen" rel="stylesheet" type="text/css" >
Run Code Online (Sandbox Code Playgroud)

我的代码怎么了?

mer*_*tor 11

你不应该单独回应它们.

应该有一个地方打印HeadLink助手,而所有其他调用只将样式表添加到要打印的助手.例如,视图脚本中的任何位置都有以下规则:

<?php $this->headLink()->appendStylesheet('/Layouts/admin/css/button.css'); ?>
<?php $this->headLink()->appendStylesheet('/Layouts/admin/css/inputText.css'); ?>
<?php $this->headLink()->appendStylesheet('/Layouts/admin/css/fancyTable.class.css'); ?>
Run Code Online (Sandbox Code Playgroud)

然后在你的<head>:

<?= $this->headLink() ?>
Run Code Online (Sandbox Code Playgroud)

或者,如果它们都在同一个地方,你可以把它们连在一起

<?= $this->headLink()
    ->appendStylesheet('/Layouts/admin/css/button.css')
    ->appendStylesheet('/Layouts/admin/css/inputText.css')
    ->appendStylesheet('/Layouts/admin/css/fancyTable.class.css'); ?>
Run Code Online (Sandbox Code Playgroud)

这将打印HeadLink助手的内容与附加的3个样式表.

另请参阅HeadLink助手Zend文档 ; 特别是这个例子.