Asset ===== The *AssetServiceProvider* provides a way to manage URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files. Parameters ---------- * **assets.version**: Default version for assets. * **assets.version_format** (optional): Default format for assets. * **assets.base_path**: Default path to prepend to all assets without a package. * **assets.base_urls**: (Alternative to ``assets.base_path``) List of base URLs to choose from to prepend to assets without a package. * **assets.named_packages** (optional): Named packages. Keys are the package names and values the configuration (supported keys are ``version``, ``version_format``, ``base_urls``, and ``base_path``). * **assets.json_manifest_path** (optional): Absolute path to a `JSON version manifest <https://symfony.com/blog/new-in-symfony-3-3-manifest-based-asset-versioning>`_. Services -------- * **assets.packages**: The asset service. Registering ----------- .. code-block:: php $app->register(new Silex\Provider\AssetServiceProvider(), array( 'assets.version' => 'v1', 'assets.version_format' => '%s?version=%s', 'assets.named_packages' => array( 'css' => array('version' => 'css2', 'base_path' => '/whatever-makes-sense'), 'images' => array('base_urls' => array('https://img.example.com')), ), )); .. note:: Add the Symfony Asset Component as a dependency: .. code-block:: bash composer require symfony/asset If you want to use assets in your Twig templates, you must also install the Symfony Twig Bridge: .. code-block:: bash composer require symfony/twig-bridge Usage ----- The AssetServiceProvider is mostly useful with the Twig provider using the ``asset()`` method. It takes two arguments. In the case of named packages, the first is the path relative to the base_path specified in the package definition and the second is the package name. For unmamed packages, there is only one argument, the path relative to the assets folder: .. code-block:: jinja {{ asset('/css/foo.png') }} {{ asset('/css/foo.css', 'css') }} {{ asset('/img/foo.png', 'images') }} {{ asset_version('/css/foo.png') }} For more information, check out the `Asset Component documentation <https://symfony.com/doc/current/components/asset/introduction.html>`_.