Laravel Blade如何使用相对路径引入子视图文件?
在Laravel Blade中使用相对路径引入子视图
当然可以!Laravel Blade从5.4版本开始就支持相对路径引入子视图了,完美解决你提到的「每次要写完整路径、重命名文件夹就得逐一修改@include」的麻烦。
下面给你说具体的用法:
引入同目录下的子视图
比如你在resources/views/desktop/modules/home/home.blade.php里,要引入同目录的header.blade.php,直接写:@include('./header')甚至更简洁的
@include('header')也能生效,但加上./前缀更明确,能避免和全局视图(比如根目录下的header.blade.php)重名冲突。引入上级目录的视图
如果要往上找目录,用../来层级跳转就行:- 比如要引入
desktop/modules/sidebar.blade.php,写@include('../sidebar') - 要是需要跳两级目录,就写
@include('../../common/footer'),以此类推
- 比如要引入
注意事项
- 这个功能要求Laravel版本在5.4及以上,如果你用的是更早的版本,得先升级框架
- 相对路径是基于当前视图所在的物理目录,和路由、控制器的位置无关
- 当视图目录结构复杂时,尽量用
./或../明确路径,避免视图名冲突导致意外引入错误的文件
拿你的场景举例:在resources/views/desktop/modules/home/home.blade.php里引入同目录的子视图,比如home_content.blade.php,直接写@include('./home_content')就搞定了,以后哪怕把home文件夹重命名成index,只要子视图和当前视图还在同一个目录,这个@include完全不用修改,省心很多!
内容的提问来源于stack exchange,提问作者Amin Adel
相关产品推荐
相关产品推荐

