0

我是codeigniter的新手。我想在每个页面上加载 jquery。我知道我们必须使用 autoload.php。但在其中有一个部分可以包含 js 或 css 等静态内容。这该怎么做?我创建了另一个这样的索引

$autoload['static'] = array(JS_LIBS_PATH.'/jq.js');

但显然什么也没发生。该常量已在 config,php.ini 中定义。使用相同的常量我可以将 jq 放在页面上,但是 autoload 呢?

4

3 回答 3

2

我可以想到几个精心设计的解决方案,但我真的认为 javascript 是演示级别的,不应该出现在您的自动加载、模型、控制器等中。

您可以使用某种主视图文件来满足您的<head>基本 HTML 要求:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title><?php echo $title; ?></title>

    <script src="/path/to/jquery.js"></script> <!-- jQuery on every page -->

    <!-- alternatively, loop through files in a custom config setting -->
    <?php foreach (config_item('default_js') as $src): ?>
    <script src="<?php echo $src; ?>"></script
    <?php endforeach; ?>

    <!-- ... and/or loop through files set in a controller -->
    <?php foreach ($js_files as $src): ?>
    <script src="<?php echo $src; ?>"></script
    <?php endforeach; ?>

  </head>
  <body>
    <header />
    <?php echo $content; ?>
    <footer />
  </body>
</html>

然后像这样加载视图:

$data['js_files'] = array('draggable.js', 'widgets.js');
$content = $this->load->view('index', $data, TRUE);
$this->load->view('master', array('title' => 'Home', 'content' => $content));

当然,这只是数以百万计的一种解决方案,但是 Codeigniter “自动加载” CSS 和 Javascript 的想法毫无意义,您必须自己以一种或另一种方式“加载”它——如何做到这一点完全取决于您。

于 2012-05-22T20:25:12.957 回答
1

这是我一段时间以来所做的,效果很好。

您的资产文件(javascript、样式表等)进入您的资产文件夹/assets/js/assets/css

在您的配置文件中,您定义要加载的默认 JavaScript 文件数组。

$config['default_asset_js'] = array('js/jquery.js', 'js/jquery-ui.js');

在您的视图中,您有一个部分贯穿该数组并输出它们中的每一个。

foreach($this->config-item('default_asset_js') as $file_name)
{
    echo '<script src="' . base_url('assets/' . $file_name) . '"></script>';
}

如果您有需要加载其他文件的特定页面,您也可以发挥创意并添加到控制器中的该数组中。

于 2012-05-22T20:10:54.770 回答
0

在 CI 中,Helper 顾名思义就是帮助你完成任务。所以我们可以自动加载jquery作为助手。

  1. 将 jquery 文件放在某个地方:/var/www/html/ci3/assets/js/jquery-2.1.4.min.js
  2. 创建一个文件 /var/www/html/ci3/application/helpers/jquery_helper.php (您需要使用 _helper.php 后缀)。
  3. 在 jquery_helper.php 文件中调用 jquery-2.1.4.min.js 文件:
    <script src="assets/js/jquery-2.1.4.min.js"></script>

  4. 在 /var/www/html/ci3/application/config/autoload.php 中调用 jquery_helper.php:
    $autoload['helper'] = array('jquery'); 现在 jquery 将自动加载,您可以在所有视图中使用它。

于 2016-04-20T16:05:35.297 回答