twig模板引擎不支持../ or ./相对路径怎么办?

简介: @(汗) 因为写的框架使用了twig,这就蛋疼了,只有一些twig中文文档,却没有关于twig实战的一些的文章(或者说有些英文版说得太高深),于是这就相当于从零开始.今天使用自己的框架的时候,遇到一个问题,也就是include不能使用相对路径,这我就急了。

@(汗) 因为写的框架使用了twig,这就蛋疼了,只有一些twig中文文档,却没有关于twig实战的一些的文章(或者说有些英文版说得太高深),于是这就相当于从零开始.

今天使用自己的框架的时候,遇到一个问题,也就是include不能使用相对路径,这我就急了。

[button href="https://stackoverflow.com/questions/13018034/twig-include-template-from-other-directory"]stackoverflow[/button]

说得太孤儿了,因为讲的自动加载器根本没有例子,我怎么知道怎么写...

于是又翻到

[button href="https://symfony.com/doc/3.4/templating/namespaced_paths.html"]symfony[/button]

symfony也是使用了twig,因此对使用我的框架开发具有实际意义。

symfony使用了twig的扩展,但当我看见@name这样的格式时候,我突然想起来看到twig文档有对命名空间的另一写法。

下面使用我的框架frag进行说明:

$loader = new \Twig\Loader\FilesystemLoader(APP. '/template/' . THEME_NAME);
//只要添加下面的代码
$loader->addPath(APP. '/template/' . THEME_NAME . '/admin/common/', 'admin');

其实正常来说就是在模板的目录去寻找,不会翻目录,所以我们要增加让它寻找的路径。

{{ include('@admin/left-sidebar.html') }}这样就可以避免相对引用

目录
相关文章
|
7月前
|
JavaScript 前端开发
设置Vue路径别名用于ts、js、scss、less
设置Vue路径别名用于ts、js、scss、less
|
JavaScript 前端开发 PHP
PHP - Laravel 视图模板(blade.php)导入JS、Css、素材文件并使用
PHP - Laravel 视图模板(blade.php)导入JS、Css、素材文件并使用
615 0
|
前端开发 JavaScript 数据库
Nodejs——fs模块,asnyc await使用,ejs模板引擎
(2) fs.mkdir 创建目录 fs.mkdir(function(){}) (3) fs.writeFile 创建写入文件 fs.writeFile(function(){}) (4)fs.appendFile 追加文件 如果追加的文件不存在的话,会自动创建,然后追加内容 如果原本存在的话,就直接追加内容
159 0
|
JavaScript
vue使用js-file-download完成导出功能
1.安装js-file-download 2.引入对应的功能模块 3.代码段
242 0
vue83-了解src下的目录结构
vue83-了解src下的目录结构
310 0
vue83-了解src下的目录结构
|
存储 数据库
|
JavaScript
Webpack: twig-loader编译 Twig 模板并返回一个函数
Webpack: twig-loader编译 Twig 模板并返回一个函数
129 0
|
前端开发 JavaScript Python
Python:Flask-Assets打包js和css文件
Python:Flask-Assets打包js和css文件
207 0
|
JavaScript 中间件 测试技术
egg.js目录结构
egg.js目录结构
151 0
下一篇
DataWorks