I'm working on setting up a project for multiple configurations. I know that if you want to have multiple json_manifest_paths, you need modify config.yml like this:
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"
And then you call your assets like this:
<img src="{{ asset("build/desktop/images/background.png", 'project_1') }}" />
But I also want to have a default json_manifest_path which will be targeted if I call my assets without the second parameter, like this:
<img src="{{ asset("build/images/background.png") }}" />
So, sometimes I'll have the project project_1
built inside /build/project_1
and sometimes I'll have project_2
, and so on, you get the idea.
I need to have a third option where a project will be built directly inside /build
and the way I call assets will be by not giving it a second argument. In that case, manifest.json path will be directly inside /build
.
I tried with this but it's giving me an error that it doesn't exist, even though I am not calling my assets without a second argument:
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
How do I set up a default json_manifest_path inside config.yml which will be targeted if I call my assets without the second parameter?
I did something similar with EventListener whitch listen for onKernelController even and adds the necessary assets package like so:
Then you don’t need to specify the second argument of the asset function at all.
Similarly you can dynamically add the default package and leave the rest hardcoded In the config file