Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载一个不在Twig模板的公用文件夹中的js文件_Twig_Slim - Fatal编程技术网

加载一个不在Twig模板的公用文件夹中的js文件

加载一个不在Twig模板的公用文件夹中的js文件,twig,slim,Twig,Slim,我的文件结构如下所示: ---public(Documentroot folder, where all my css,js, images loads from) ---models ---modules {all my modules customer, db_management e.t.c) ---scripts |---ivr_builder |------ui-bootstrap-tpls-0.2.js --twig_templates {All my ta} |

我的文件结构如下所示:

---public(Documentroot folder, where all my css,js, images loads from)
---models
---modules {all my modules customer, db_management e.t.c)
---scripts
  |---ivr_builder
    |------ui-bootstrap-tpls-0.2.js
--twig_templates {All my ta}
    |---layout.twig
<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% if page_title is defined and page_title is not null ? page_title: 'Log in'  %}
{% endif %}
<link rel='stylesheet' href='/css/bootstrap.css'/>
<link rel='stylesheet' href='/js/libraries/angular-aside/angular-aside.css'/>
<link rel="stylesheet" href="/js/libraries/angular-notify-master/styles/css/angular-notify-texture.css" id="notifyTheme">
<link rel='stylesheet' href='/css/ivr_builder.css'/>
<link rel="stylesheet" type="text/css" href="/css/custom.css">
 <script type="application/javascript" src="/js/libraries/angular.js"></script>
<script type="application/javascript" src="/js/libraries/angular-animate.min.js"></script>
<script type="application/javascript" src="/scripts/ivr_builder/ui-bootstrap-tpls-0.13.4.js"></script>

<script type="application/javascript" src="/js/libraries/angular-aside/angular-aside.js"></script>
<script type="application/javascript" src="/js/libraries/angular-notify-master/scripts/dist/angular-notify.js"></script>
<script type="application/javascript" src="/js/jquery-ui-1.11.4/external/jquery/jquery.js"></script>
[[top_bar]]
在我的index.php文件中,我有以下内容:

use \Psr\Http\Message\ServerRequestInterface as Request;
    use \Psr\Http\Message\ResponseInterface as Response;

    require '../vendor/autoload.php';
    spl_autoload_register(function ($classname) {
        require "../models/" . $classname . ".php";
    });

    $config['displayErrorDetails'] = false;
    $app = new \Slim\App(["settings" => $config]);
    $container = $app->getContainer();
    // Register component on container
    $container['view'] = function ($container) {
        $view = new \Slim\Views\Twig(
           '/var/www/html/ivr/twig_templates', ['cache' => false]);


        $env = $view->getEnvironment();
            $lexer = new Twig_Lexer($env, array(
            'tag_comment'   => array('{#', '#}'),
            'tag_block'     => array('{%', '%}'),
            'tag_variable'  => array('[[', ']]'),
            'interpolation' => array('#{', '}'),
        ));
        $env->setLexer($lexer);
       $loader = new \ Twig_Loader_Filesystem('ivr/scripts/ivr_builder/ui-bootstrap-tpls-0.13.4.js');
       $env->getLoader();



        return $view;
    };
然后在我的浏览器中,我得到以下错误:

Name                         | Status
---------------------------- | ------ 
angular-aside.js             | 200 
jquery.js                    | 200 
ui-bootstrap-tpls-0.1.3.4.js | 500
我的layout.swig标题如下所示:

---public(Documentroot folder, where all my css,js, images loads from)
---models
---modules {all my modules customer, db_management e.t.c)
---scripts
  |---ivr_builder
    |------ui-bootstrap-tpls-0.2.js
--twig_templates {All my ta}
    |---layout.twig
<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
{% if page_title is defined and page_title is not null ? page_title: 'Log in'  %}
{% endif %}
<link rel='stylesheet' href='/css/bootstrap.css'/>
<link rel='stylesheet' href='/js/libraries/angular-aside/angular-aside.css'/>
<link rel="stylesheet" href="/js/libraries/angular-notify-master/styles/css/angular-notify-texture.css" id="notifyTheme">
<link rel='stylesheet' href='/css/ivr_builder.css'/>
<link rel="stylesheet" type="text/css" href="/css/custom.css">
 <script type="application/javascript" src="/js/libraries/angular.js"></script>
<script type="application/javascript" src="/js/libraries/angular-animate.min.js"></script>
<script type="application/javascript" src="/scripts/ivr_builder/ui-bootstrap-tpls-0.13.4.js"></script>

<script type="application/javascript" src="/js/libraries/angular-aside/angular-aside.js"></script>
<script type="application/javascript" src="/js/libraries/angular-notify-master/scripts/dist/angular-notify.js"></script>
<script type="application/javascript" src="/js/jquery-ui-1.11.4/external/jquery/jquery.js"></script>
[[top_bar]]


{%如果定义了页面标题且页面标题不为空?页面标题:'登录'%}
{%endif%}
[[顶栏]]


请在浏览器上提供如何不加载的建议。

我可以轻松使用xsendfile加载它:

发送文件 使用xsendfile发送文件非常简单:

<?php
//We want to force a download box with the filename hello.txt
header('Content-Disposition: attachment;filename=hello.txt');


//File is located at /home/username/hello.txt
header('X-Sendfile: /home/username/hello.txt');
在Slim应用程序路由回调中,将X-SendFile头设置为绝对路径,指向上面指定的文件路径内的文件:

$app->get('/get-file', function () use ($app) {
    $res = $app->response();
    $res['X-SendFile'] = '/path/to/directory/containing/js/files/foo.js';
});

然而,我很惊讶我不能使用slim来加载它,所以我要试一试:XSendFilePath“/path/to/directory/containing/js/files”上的XSendFile,并在slim应用程序路由回调中,使用上面指定的文件路径中的文件的绝对路径设置X-SendFile头:$app->get('/get file',function()$use($app){$res=$app->response();$res['X-SendFile']='/path/to/directory/containing/js/files/foo.js';});