Symfony资产组件“”不是有效的URL

时间:2016-04-07 21:37:39

标签: php symfony assets webpack-dev-server symfony-2.7

我正在使用webpack dev服务器在本地开发中提供我的资产。我在paramters.yml.dist中有以下内容

# local assets devserver address
# if you want to use webpack dev server use "http://localhost:8090"
# and then > npm run devserver
assets_base_url: ~

我在本地环境框架中有以下内容。

framework:
    assets:
        base_urls: ["%assets_base_url%"]

我的问题是,对于没有使用devserver的同事,它不能使用“〜”的基本设置。

Error: "" is not a valid URL

我该怎么做才能通过parameters.yml

中的一个设置启用或禁用devserver资产网址

Symfony docs for asset component

1 个答案:

答案 0 :(得分:1)

您可以在捆绑包的Extension Class中执行此操作,而不是放置base_urls: ["%assets_base_url%"]

namespace Acme\HelloBundle\DependencyInjection;

use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;

class AcmeHelloExtension extends Extension implements PrependExtensionInterface
{
    // ...

    public function prepend(ContainerBuilder $container)
    {
        $assetBaseUrl = $container->getParameter('assets_base_url');
        if (!$assetBaseUrl) {
            $container->prependExtensionConfig(
                'framework',
                array(
                    'assets' => array(
                        'base_urls' => array($assetBaseUrl)
                    )
                )
            );
        }
    }
}

PrependExtensionInterface::prepend()方法中,您可以通过config.yml配置预先设置设置。