资产不生成任何文件

时间:2012-02-12 11:45:54

标签: twig assetic

我正在使用Assetic with Twig但不使用symfony2框架。

以下是项目的设置方式

/site
   /template
      /css

/public_html
  /css

原始css存储在/site/template/css下,我希望资产缩小css并将其输出到/public_html/css

以下是资产如何设置为枝条扩展

$factory = new AssetFactory(//absolute path to `/site/template/`);
$factory->setDefaultOutput(//absolute path to `/public_html/`);
$factory->setDebug(false);
$twig->addExtension(new AsseticExtension($factory));

然后在我的模板中:

{% stylesheets 'css/screen.css'  output='css/*' %}
  <link href="{{ asset_url }}" type="text/css" rel="stylesheet" />
{% endstylesheets %}

我可以看到资产在最终输出中生成了一个唯一的URL:

<link href="css/00da241.css" type="text/css" rel="stylesheet" />

但是,如果我查看/public_html/css,则永远不会生成文件!

我正在使用带有apache的Windows 7服务器,PHP在任何地方都没有问题。

导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:3)

你在这里做的是要求资产生成资产的URL(使用树枝)。

但是资产网址还没有指向任何文件。您仍然需要使用 dump 脚本生成它们:

<?php

use Assetic\AssetWriter;
use Assetic\Extension\Twig\TwigFormulaLoader;
use Assetic\Extension\Twig\TwigResource;
use Assetic\Factory\LazyAssetManager;

$am = new LazyAssetManager($factory);

// enable loading assets from twig templates
$am->setLoader('twig', new TwigFormulaLoader($twig));

// loop through all your templates
foreach ($templates as $template) {
    $resource = new TwigResource($twigLoader, $template);
    $am->addResource($resource, 'twig');
}

$writer = new AssetWriter('/path/to/web');
$writer->writeManagerAssets($am);

此脚本使用twig模板定义要转储的文件。 您当然必须定义$templates变量和$twig变量。