Asset 配置 - 类別
优质
小牛编辑
129浏览
2023-12-01
Asset 类别是一系列协助收集、分组和显示资产(js、css、img)的方法。
配置
Asset 类别的预设是透过 fuel/core/config/asset.php 配置档案来配置。 它已经填入了一个预设配置。 你可以透过添加一个同名的配置档案到你应用程序的 config 目录来覆写此配置,并在这里设定你想要变更的值。 这些将覆写核心配置,但保留你没有覆写的部份。
以下全域配置值可以被定义:
参数 | 类型 | 预设 | 描述 |
---|---|---|---|
paths | 阵列 |
| 预设 asset 根路径。路径必须包含一个斜线。 |
css_dir | 字串 |
| 预设 css 子文件夹。必须包含一个斜线。 |
js_dir | 字串 |
| 预设 js 子文件夹。必须包含一个斜线。 |
img_dir | 字串 |
| 预设 image 子文件夹。必须包含一个斜线。 |
folders | 阵列 |
| 为每个资产类型指定一个或更多各自的资产文件夹。 |
url | 字串 |
| 指向你资产的 root URL。当载入一个资产,资产路径以及资产名称会被附加到此 URL。 |
add_mtime | 布林 |
| 是否附加资产最后修改时间戳记到 URL,这将有助于快取资产,值得推荐。 |
indent_level | 整数 |
| 为了保持产生的 HTML 整齐,Asset 类可以缩排标籤。这设定缩排的级别。 |
indent_with | 字串 |
| 要用来缩排产生的 HTML 的字串。这预设是一个 tab。 |
auto_render | 布林 |
| 这控制当一个资产方法没带群组名称被呼叫时,是否回传产生的 HTML。 如果为 false,该资产将被添加到预设群组以在之后呈现。 |
fail_silently | 布林 |
| 当设为 true,当资产档案没被找到时,例外将不会被抛出。 该资产将会被忽略。 |
always_resolve | 布林 |
| 当设为 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');
在这个情况下搜寻路径会被忽略。