当前位置: 首页 > 文档资料 > FuelPHP 中文文档 >

Asset 配置 - 类別

优质
小牛编辑
129浏览
2023-12-01

Asset 类别是一系列协助收集、分组和显示资产(js、css、img)的方法。

配置

Asset 类别的预设是透过 fuel/core/config/asset.php 配置档案来配置。 它已经填入了一个预设配置。 你可以透过添加一个同名的配置档案到你应用程序的 config 目录来覆写此配置,并在这里设定你想要变更的值。 这些将覆写核心配置,但保留你没有覆写的部份。

以下全域配置值可以被定义:

参数类型预设描述
paths阵列
array('assets/')
预设 asset 根路径。路径必须包含一个斜线。
css_dir字串
'css/'
预设 css 子文件夹。必须包含一个斜线。
js_dir字串
'js/'
预设 js 子文件夹。必须包含一个斜线。
img_dir字串
'img/'
预设 image 子文件夹。必须包含一个斜线。
folders阵列
array(
	'css' => array(),
	'js'  => array(),
	'img' => array(),
),
为每个资产类型指定一个或更多各自的资产文件夹。
url字串
\Config::get('base_url')
指向你资产的 root URL。当载入一个资产,资产路径以及资产名称会被附加到此 URL。
add_mtime布林
true
是否附加资产最后修改时间戳记到 URL,这将有助于快取资产,值得推荐。
indent_level整数
1
为了保持产生的 HTML 整齐,Asset 类可以缩排标籤。这设定缩排的级别。
indent_with字串
"\t"
要用来缩排产生的 HTML 的字串。这预设是一个 tab。
auto_render布林
true
这控制当一个资产方法没带群组名称被呼叫时,是否回传产生的 HTML。 如果为 false,该资产将被添加到预设群组以在之后呈现。
fail_silently布林
false
当设为 true,当资产档案没被找到时,例外将不会被抛出。 该资产将会被忽略。
always_resolve布林
false
当设为 true,Asset 类别始终会尝试在本地解析资产。当设为 false, it will only resolve it the asset URL is relative (i.e. pointing to the local host itself). This is useful if you have a copy of your assets on a separate asset server, or behind an asset cache like Varnish.

Asset 路径

有一些方法可以定义资产路径。你可以定义全域的资产搜寻路径,它定义你资产的 'root'。 当搜寻一个资产时,为已载入资产定义的子文件夹会被附加到这些路径。 如果你使用多个全域搜寻路径,它们必须都使用相同的子文件夹结构。

// 假设:
// - 你的 URL 是 "http://example.org/"
// - 你的 全域搜寻路径是 "assets/"
// - 你的 img_dir 是 "img/"
// 这将回传 <img src="http://example.org/assets/img/icons/myicon.png" />
echo Asset::img('icons/myicon.png');

如果你不想要一个标准的子文件夹结构,或你必须在现有环境的工作, 而该环境的资产路径已被定义, Asset 类别能让你为每种支援的资产类型定义个别的资产搜寻文件夹。

// 如果这是你的配置
// 'folders' => array(
//	'css' => array('assets/css'),
//	'js'  => array('assets/js', 'global/js/'),
//	'img' => array('assets/img/', 'assets/icons'),
// ),
// 而你的图示在 'assets/icons',
// 这将回传 <img src="http://example.org/assets/icons/myicon.png" />
echo Asset::img('myicon.png');

搜寻路径和搜寻文件夹都可以使用 add_path() 方法在执行阶段定义。

静态资产

如果你的(一些)资产没储存在应用程序根目录,而是在 URL 使用不同主机, 你可以使用下面的技术来载入一个资产:

// 每个资产个别地
echo Asset::img('http://static.example.org/icons/myicon.png');

// 对所有组别,设定你的 Asset URL 到 'http://static.example.org/'
echo Asset::img('icons/myicon.png');
在这个情况下搜寻路径会被忽略。