【问题标题】:How to set up default manifest_json_path while having multiple configurations?如何在有多个配置时设置默认 manifest_json_path?
【发布时间】:2020-11-25 10:22:47
【问题描述】:

我正在为多个配置设置一个项目。我知道如果你想拥有多个 json_manifest_paths,你需要像这样修改 config.yml:

assets:
base_urls:
    - "%cdn_url%"
packages:
    project_1:
        json_manifest_path: '%kernel.project_dir%/web/build/project_1/manifest.json'
    projest_2:
        json_manifest_path: '%kernel.project_dir%/web/build/project_2/manifest.json'
    assets:
        version: "%asset_version_generated%"
        base_path: "/build"

然后你像这样调用你的资产:

    <img src="{{ asset("build/desktop/images/background.png", 'project_1') }}" />

但我也希望有一个默认的 json_manifest_path,如果我在没有第二个参数的情况下调用我的资产,它将成为目标,如下所示:

    <img src="{{ asset("build/images/background.png") }}" />

所以,有时我会在/build/project_1 中构建项目project_1,有时我会在project_2 中构建项目,等等,你懂的。

我需要第三个选项,将项目直接构建在 /build 中,我调用资产的方式是不给它第二个参数。在这种情况下,manifest.json 路径将直接位于 /build 内。

我尝试了这个,但它给了我一个它不存在的错误,即使我没有在没有第二个参数的情况下调用我的资产:

assets:
json_manifest_path: '%kernel.project_dir%/web/build/manifest.json'
base_urls:
    - "%cdn_url%"
packages:
    project_1:
        json_manifest_path: '%kernel.project_dir%/web/build/project_1/manifest.json'
    project_2:
        json_manifest_path: '%kernel.project_dir%/web/build/project_2/manifest.json'
    assets:
        version: "%asset_version_generated%"
        base_path: "/build"

TL;DR

如何在 config.yml 中设置默认的 json_manifest_path,如果我在没有第二个参数的情况下调用我的资产,它将成为目标?

【问题讨论】:

    标签: symfony webpack-encore


    【解决方案1】:

    我用 EventListener 做了类似的事情,甚至监听 onKernelController 并添加了必要的资产包,如下所示:

    $strategy = new JsonManifestVersionStrategy(
            $this->parameterBag->get('kernel.project_dir').'/public/build/'.$your_project_n.'/manifest.json'
        );
        $this->assetPackages->setDefaultPackage(new Package($strategy));
    

    那么你根本不需要指定资产函数的第二个参数。

    同样,您可以动态添加默认包并将其余的硬编码保留在配置文件中

    【讨论】:

      猜你喜欢
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      相关资源
      最近更新 更多