使用CodeIgniter导入js和CSS的最佳方法是什么?

Sungje Moon

这是我的第一个使用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控制器的工作原理吗?

Sungje Moon

我只是通过制作一个加载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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

vuetify 和 @mdi/js 中缺少 V-Checkbox 图标。导入它的最佳方法是什么?

使用CSS或javascript折叠和展开html 4中的列表的最佳方法是什么

在Nuxt.js项目中使用normalize.css的最佳方法是什么?

使用Tensorflow.js和tf.Tensor处理大数据的最佳方法是什么?

使用 css + sass 构建这个网格的最佳方法是什么?

使用 CSS 将文本垂直居中的最佳方法是什么?

在 Swift 中使用 map 和排序的最佳方法是什么

使用PHP和JQuery生成HTML的最佳方法是什么

在Node.js中使用Akka的最佳方法是什么

使用React Js的最佳方法是什么:Redux,Hooks或Context?

将CSS3 Transitions和Animations与jQuery addClass / removeClass一起使用的最佳方法是什么?

导入和提供可选功能的Python最佳做法是什么?

在 total.js 中,定义可以在脚本和模板中使用的全局常量的最佳方法是什么?

从ESModules中的复杂路径导入模块的最佳方法是什么

导入es6模块的最佳方法是什么?

导入元素依赖项的最佳方法是什么?

在intellij中导入新的python模块的最佳方法是什么?

在Codeigniter中编写模型代码的最佳方法是什么

在CodeIgniter中防止SQLInjection的最佳方法是什么

在Codeigniter中配置电子邮件的最佳方法是什么?

使用JasperReports的最佳方法是什么?

使用OnClick事件的最佳方法是什么?

结合使用redux的最佳方法是什么?

使用Codeigniter加载多个视图的最佳选择是什么?

通过 html 和 css 创建此类网格的最佳方法是什么?

导入和/或将Gmail-Google联系人与Skype联系人同步的最佳方法是什么?

导入、读取和添加到保存在文本文件中的列表的最佳方法是什么?

从node.js和Typescript中的动态文件名加载JSON的最佳方法是什么?

在node.js中执行“多线程”的最佳和有效方法是什么?