Twig 无法加载资产

Twig is not able to load assets

我正在尝试使用 slim-extras 和 twig 进行瘦身。问题是我无法将 css 或 js 文件包含到 twig html 中。直接从浏览器访问 css 和 js 文件给出 404 未找到错误以及浏览器控制台抛出 404 页面错误。

这是我的 httdocs(文件夹结构)

我的 apache 文档根目录是 /var/www/devdomain.dev/publicDirectoryIndex index.php

这是我的 index.php 在 public 文件夹

这里我尝试用 $app->hook 添加 hook 并将其传递给 twig 也没有用。

<?php

require '../vendor/autoload.php';

// Prepare app
$app = new \Slim\Slim(array(
    'templates.path' => '../templates',
));

// Create monolog logger and store logger in container as singleton 
// (Singleton resources retrieve the same log resource definition each time)
$app->container->singleton('log', function () {
    $log = new \Monolog\Logger('slim-skeleton');
    $log->pushHandler(new \Monolog\Handler\StreamHandler('../logs/app.log', \Monolog\Logger::DEBUG));
    return $log;
});

$app->hook('slim.before', function () use ($app) {
    $app->view()->appendData(array('baseUrl' => 'templates/'));
});

// Prepare view
$app->view(new \Slim\Views\Twig());
$app->view->parserOptions = array(
    'charset' => 'utf-8',
    'cache' => realpath('../templates/cache'),
    'auto_reload' => true,
    'strict_variables' => false,
    'autoescape' => true
);
$app->view->parserExtensions = array(new \Slim\Views\TwigExtension());


// Define routes
$app->get('/', function () use ($app) {
    // Sample log message
    $app->log->info("Home-Page '/' route");
    // Render index view
    $app->render('index.phtml');
});

// Run app
$app->run();

所以我的问题是:如何将模板路径或资产路径传递给带有 slim 的树枝?

编辑:如果 css 或 public 文件夹中的 js 文件可以包含。

我认为这与您的设置有关。您的浏览器在 index.php 上,他将由此搜索您的资产但找不到它们 - 因为它们不在您的 vhost.

它们实际上就在那里,但是当 apache 在 public 文件夹中启动时,您的浏览器无法离开那里。该资产必须 public(或直接 "echo-ed" 到您的模板中)。