【问题标题】:Symfony asset component "" is not a valid URLSymfony 资产组件“”不是有效的 URL
【发布时间】:2016-04-07 21:37:39
【问题描述】:

我正在使用 webpack 开发服务器在本地开发中为我的资产提供服务。我的 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 assets url

Symfony docs for asset component

【问题讨论】:

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


    【解决方案1】:

    您可以在包的扩展类中执行此操作,而不是放入 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 配置之前添加设置。

    【讨论】:

    • 如果我想在全球范围内使用此设置并且我在项目中有 20 多个公司捆绑包,它将如何工作。
    • 您需要一个 21° 的捆绑包来执行此操作(称为“CoreBundle”或其他名称),并且其他捆绑包现在必须依赖于这个新捆绑包。
    • 我将展示这个解决方案,否则我将强制所有同事手动设置它以更正 Url。而不是像这样创建依赖项。
    • 等等,等等,等等……我可能正在寻找最复杂的解决方案
    • 尝试将assets_base_url: ~改为assets_base_url: []
    猜你喜欢
    • 2016-01-16
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多