这是我的第一个使用CodeIgniter的项目,它并不像看起来那样简单。
我必须在不同的页面中导入不同的JS和CSS,但我陷入了困境。
首先,我已经看到硬编码回声不是CI的实现方式,所以我做了一个简单的类,例如
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Fileload {
public function loadjs($filename)
{
echo '<script language="javascript" type="text/javascript" src="'.$filename.'"></script>';
}
public function loadcss($filename)
{
echo '<link rel="stylesheet" type="text/css" href="'.$filename.'" >';
}
}
?>
在我的控制器中,我像
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Main extends CI_Controller {
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see https://codeigniter.com/user_guide/general/urls.html
*/
public function index()
{
$this->load->library('fileload');
$this->load->view('head');
$this->load->view('mainpage');
$this->fileload->loadjs('//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js');
$this->load->view('tail');
}
}
但是,应该位于“ tail”上方右下方的光滑库位于head>标记内部的顶部,该标记位于view('head')内部;
似乎控制器的方法没有按照我写下的顺序运行。它应该先回显脚本文件。
谁能解释这个CodeIgniter控制器的工作原理吗?
我只是通过制作一个加载JS和CSS的视图来做到这一点的
$data['css']=array('main.css','navbar.css');
$data['csscdn']=array('//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css');
$data['js']=array('typeahead.js','navbar.js');
$data['jscdn']=array('//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js');
$this->load->view('head',$data);
$this->load->view('mainpage');
$this->load->view('tail',$data);
像这样的控制器和
<?php
if(isset($css)){
foreach($css as $script):?>
<link rel="stylesheet" href='<?php echo base_url()."bydcss/".$script;?>'>
<?php endforeach;
}
if(isset($csscdn)){ foreach($csscdn as $script):?>
<link rel="stylesheet" href='<?php echo $script;?>'>
<?php endforeach;
}
?>
对于head.php
<?php
if(isset($js)){
foreach($js as $script):?>
<script type='text/javascript' src = '<?php echo base_url()."bydjs/".$script;?>'></script>
<?php endforeach;
}
if(isset($jscdn)){ foreach($jscdn as $script):?>
<script type='text/javascript' src = '<?php echo $script;?>'></script>
<?php endforeach;
}
?>
对于tail.php
在视图上有点脏,但对于控制器来说更简单
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句