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


Symfony asset component "" is not a valid URL

我正在使用webpack-dev服务器为本地开发中的资产提供服务。我的参数中有以下内容。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资产url

资产组件的Symfony文档

您可以在捆绑包的扩展类中执行此操作,而不是放置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配置上准备设置。