我是codeigniter的新手。我想在每个页面上加载 jquery。我知道我们必须使用 autoload.php。但在其中有一个部分可以包含 js 或 css 等静态内容。这该怎么做?我创建了另一个这样的索引
$autoload['static'] = array(JS_LIBS_PATH.'/jq.js');
但显然什么也没发生。该常量已在 config,php.ini 中定义。使用相同的常量我可以将 jq 放在页面上,但是 autoload 呢?
我是codeigniter的新手。我想在每个页面上加载 jquery。我知道我们必须使用 autoload.php。但在其中有一个部分可以包含 js 或 css 等静态内容。这该怎么做?我创建了另一个这样的索引
$autoload['static'] = array(JS_LIBS_PATH.'/jq.js');
但显然什么也没发生。该常量已在 config,php.ini 中定义。使用相同的常量我可以将 jq 放在页面上,但是 autoload 呢?
我可以想到几个精心设计的解决方案,但我真的认为 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 的想法毫无意义,您必须自己以一种或另一种方式“加载”它——如何做到这一点完全取决于您。
这是我一段时间以来所做的,效果很好。
您的资产文件(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>';
}
如果您有需要加载其他文件的特定页面,您也可以发挥创意并添加到控制器中的该数组中。
在 CI 中,Helper 顾名思义就是帮助你完成任务。所以我们可以自动加载jquery作为助手。
在 jquery_helper.php 文件中调用 jquery-2.1.4.min.js 文件:
<script src="assets/js/jquery-2.1.4.min.js"></script>
在 /var/www/html/ci3/application/config/autoload.php 中调用 jquery_helper.php:
$autoload['helper'] = array('jquery');
现在 jquery 将自动加载,您可以在所有视图中使用它。