[AsseticBundle] added factory worker to fix paths when use_controller is on
This commit is contained in:
parent
570a100860
commit
5a9a65701b
@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony framework.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* This source file is subject to the MIT license that is bundled
|
||||
* with this source code in the file LICENSE.
|
||||
*/
|
||||
|
||||
namespace Symfony\Bundle\AsseticBundle\Factory\Worker;
|
||||
|
||||
use Assetic\Asset\AssetInterface;
|
||||
use Assetic\Factory\Worker\WorkerInterface;
|
||||
|
||||
/**
|
||||
* Prepends a fake front controller to every asset's target URL.
|
||||
*
|
||||
* This worker should only be added when the use_controller configuration
|
||||
* option is true. It changes the target URL to include the front controller.
|
||||
*
|
||||
* @author Kris Wallsmith <kris@symfony.com>
|
||||
*/
|
||||
class PrependControllerWorker implements WorkerInterface
|
||||
{
|
||||
const CONTROLLER = 'front_controller/';
|
||||
|
||||
public function process(AssetInterface $asset)
|
||||
{
|
||||
$targetUrl = $asset->getTargetUrl();
|
||||
|
||||
if ($targetUrl && '/' != $targetUrl[0] && 0 !== strpos($targetUrl, self::CONTROLLER)) {
|
||||
$asset->setTargetUrl(self::CONTROLLER.$targetUrl);
|
||||
}
|
||||
}
|
||||
}
|
@ -8,6 +8,7 @@
|
||||
<parameter key="assetic.controller.class">Symfony\Bundle\AsseticBundle\Controller\AsseticController</parameter>
|
||||
<parameter key="assetic.routing_loader.class">Symfony\Bundle\AsseticBundle\Routing\AsseticLoader</parameter>
|
||||
<parameter key="assetic.cache.class">Assetic\Cache\FilesystemCache</parameter>
|
||||
<parameter key="assetic.prepend_controller_worker.class">Symfony\Bundle\AsseticBundle\Factory\Worker\PrependControllerWorker</parameter>
|
||||
</parameters>
|
||||
|
||||
<services>
|
||||
@ -23,5 +24,8 @@
|
||||
<service id="assetic.cache" class="%assetic.cache.class%" public="false">
|
||||
<argument>%assetic.cache_dir%/assets</argument>
|
||||
</service>
|
||||
<service id="assetic.prepend_controller_worker" class="%assetic.prepend_controller_worker.class%" public="false">
|
||||
<tag name="assetic.factory_worker" />
|
||||
</service>
|
||||
</services>
|
||||
</container>
|
||||
|
Reference in New Issue
Block a user