ThinkPHP 是一个开源的 PHP 框架,是目前比较受欢迎的框架之一,使用它能够快速搭建出高效的 Web 应用系统。然而,在使用 ThinkPHP 进行开发时,我们有时候需要把 CSS 文件放在不同的目录
ThinkPHP 是一个开源的 PHP 框架,是目前比较受欢迎的框架之一,使用它能够快速搭建出高效的 Web 应用系统。然而,在使用 ThinkPHP 进行开发时,我们有时候需要把 CSS 文件放在不同的目录里,那么如何在 ThinkPHP5 中使用不同目录下的 CSS 文件呢?
一、在配置文件中定义静态文件路径
在 ThinkPHP5 中,可以在配置文件 config.php 中找到下面这个定义:
'view_replace_str' => [ '__PUBLIC__'=>'/public', '__STATIC__'=>'/static', '__ROOT__' => '', ],
通过修改 view_replace_str 数组中的值,定义不同目录下的静态文件路径。其中,__PUBLIC__ 定义的是指向 public 目录的路径,这是一个默认的公共目录,可以放置 CSS、JS 等静态资源文件。__STATIC__ 可以定义任意静态文件目录,而 ROOT 则是定义项目根路径。
当定义好静态文件路径后,我们就可以在模板文件中使用路径别名进行调用,如下所示:
<link rel="stylesheet" type="text/css" href="__STATIC__/css/style.css">
二、在控制器中定义静态文件路径
在控制器中,也可以定义静态文件路径,具体实现方法是在控制器的初始化方法中定义别名,代码如下:
public function _initialize() { parent::_initialize(); $this->assign('public', '/public'); $this->assign('custom', '/custom'); // 自定义目录 }
这里定义了 PUBLIC 和 CUSTOM 两个别名,并把对应路径传递给了前端视图。在模板中调用静态文件时,就可以使用这些别名,例如:
<link rel="stylesheet" type="text/css" href="{$public}/css/bootstrap.css"> <link rel="stylesheet" type="text/css" href="{$custom}/css/style.css">
如果需要在不同的控制器中定义不同的静态文件路径,可以在每个控制器中单独定义。
三、使用动态方式进行路径配置
除了在配置文件中和控制器中定义路径外,还可以在模板文件中使用动态方式进行路径配置。具体方法是在模板中使用 ThinkPHP 提供的 asset() 方法,传入相对路径即可,例如:
<link rel="stylesheet" type="text/css" href="{:asset('css/style.css')}">
这样,模板文件就会自动根据配置生成对应的静态文件路径。当然,这种方式只适用于前端开发者对控制器及配置文件不可见的场合。
总结