steevedroz / ci-asset
更容易地将您的资产包含到CodeIgniter中
Requires
- php: >=7.0.0
- steevedroz/ci-installer: ^1.0.0
This package is not auto-updated.
Last update: 2020-09-03 12:49:59 UTC
README
此包将为您的CodeIgniter项目添加一个库,以便更容易地将资产包含到代码中。
安装
使用composer(推荐)
- 在您的CodeIgniter项目中,输入
composer require steevedroz/ci-asset:^1.0。 - 从同一位置,输入
php vendor/steevedroz/ci-asset/install.php。这将把所需的文件复制到您的CodeIgniter项目(到application/libraries/Asset.php和application/config/asset.php)。:警告:运行之前,请确保您没有名为Asset.php的库,否则您的工作将丢失!
手动
将此项目的application文件夹合并到您的CodeIgniter application文件夹中。
通用用法
为了使用此库,您首先必须使用以下方法加载它
$this->load->library('asset');
完成之后,您可以在两个步骤中使用此库
- 在控制器中,将指定的资产添加到项目中。
- 在视图的
<head>部分,使用相应类型显示包含资产的所需所有行。
CSS
要将CSS文件包含在特定文档中,请执行以下操作
- 将您的文件放在
/assets/css/。例如:/assets/css/example.css。 - 在加载视图之前使用此行:
$this->asset->css('example');。(此步骤可以重复多次) - 在视图的
<head>部分添加此行:<?= $this->asset->css() ?>
如果您始终具有相同的HTML标题,则此技术效果最佳。
JavaScript
要将JavaScript文件包含在特定文档中,请执行以下操作
- 将您的文件放在
/assets/js/。例如:/assets/js/example.js。 - 在加载视图之前使用此行:
$this->asset->js('example');。(此步骤可以重复多次) - 在视图的
<head>部分添加此行:<?= $this->asset->js() ?>
示例
注意:application/config/autoload.php加载了库asset。
<?php
// application/controllers/Blog.php
class Blog extends CI_Controller
{
public function index()
{
$this->asset->css('blog');
$this->asset->css('comment');
$this->asset->js('blog');
$this->load->view('templates/header');
$this->load->view('pages/blog/index');
$this->load->view('templates/footer');
}
}
<!-- application/views/templates/header.php -->
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Blog</title>
<?= $this->asset->css() ?>
<?= $this->asset->js() ?>
</head>
结果
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Blog</title>
<link rel="stylesheet" href="assets/css/blog.css" type="text/css">
<link rel="stylesheet" href="assets/css/comment.css" type="text/css">
<script src="assets/js/blog.js" defer></script>
</head>
API
以下是Asset库所有可能的用法。
$asset->css($css = null)
当$css是一个字符串时,它将CSS添加到显示列表中。
当$css未指定时,它返回将包括之前添加的CSS表的所需所有行。
$asset->js($js = null, $library = false)
当$js是一个字符串时,它将JavaScript添加到显示列表中。
当$js未指定时,它返回将包括之前添加的JavaScript的所有行。
参数$library指定脚本是否是必须先加载到DOM准备好之前的库(例如:jQuery)。如果未指定或设置为false,则将在<script>标签中添加defer关键字。
$asset->css_url
这指定了CSS文件的自定义路径。默认值是assets/css/。
$asset->js_url
这指定了JavaScript文件的自定义路径。默认值是assets/js/。
默认资产
如果您有必须在所有页面上默认加载的资产,请按照以下方式填写application/config/asset.php
asset-js键对应一个键值数组,包含与是否为库相关的脚本名称。
asset-css键对应样式表的数组。
示例
<?php
$config['asset-js'] = [
'script-name' => false,
'library-name' => true
];
$config['asset-css'] = [
'style-1',
'style-2',
'style-3'
];