php - phalcon中volt引擎不起作用

查看:74
本文介绍了php - phalcon中volt引擎不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

生成的项目多模块项目,volt引擎不起作用,js,css加载没反应,partials也不好使,视图没法输出,貌似是volt引擎没有注册成功还是其他原因?

ps:但是自带引擎。后缀为.phtml的格式的文件按照手册上是可以引入js,css,partials文件。在上面的基础上,把后缀变成.volt格式后,还需要改什么地方,才好使呢?

目录结构

下面是config/services.php中的部分代码,在生成项目时自动生成的

$di->setShared('view', function () use ($config) {

    $view = new View();

    $view->setViewsDir($config->application->viewsDir);

    $view->registerEngines(array(
        '.volt' => function ($view, $di) use ($config) {

            $volt = new VoltEngine($view, $di);

            $volt->setOptions(array(
                'compiledPath' => $config->application->cacheDir,
                'compiledSeparator' => '_'
            ));

            return $volt;
        },
        '.phtml' => 'Phalcon\Mvc\View\Engine\Php'
       // '.volt' => 'Phalcon\Mvc\View\Engine\Php'
    ));

    return $view;
});

模块下的 Module.php 还是生成项目生产时的,没有变动!

在 views/index.volt中

加载partials

{{ partial("partials/header") }}
{{ partial("partials/main") }}
{{ partial("partials/footer") }}

加载js

{{ javascript_include("/js/1.11.3.jquery.min.js") }}

---------------2016年8月27日 23:00:00 补充------------------

Module.php中的路径

$di['view'] = function () {
            $view = new View();
            $view->setViewsDir(__DIR__ . '/views/');

            return $view;
        };

而项目目录如下图:

解决方案

贴你的volt模板在DI中注册的代码部分
贴你的加载JS、CSS的代码部分
贴你使用partial的代码部分
贴代码!贴代码!贴代码!重说三!不贴代码就提代码相关的问题,都是耍流氓!

----------------2016.08.26更新---------------------------

1、检查$config->application->viewsDir的值是否指向你的apps/frontend/views目录
2、检查$config->application->cacheDir的值(原理同上)
3、检查你的JS、CSS加载的相对路径是否正确
4、然后把DI中注册view代码里的这一行注释掉:'.phtml' => 'PhalconMvcViewEnginePhp'

不论扩展名是.phtml还是.volt,程序应该都能正常加载,只是相对路径可能错误。以此为突破口去排查问题~

这篇关于php - phalcon中volt引擎不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆