我正在使用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在任何地方都没有问题。
导致这种情况的原因是什么?
答案 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
变量。