diff --git a/book/templating.rst b/book/templating.rst index e7af783eb18..90b82d60755 100644 --- a/book/templating.rst +++ b/book/templating.rst @@ -135,7 +135,7 @@ Throughout this chapter, template examples will be shown in both Twig and PHP. web designers everywhere. Twig can also do things that PHP can't, such as whitespace control, - sandboxing, automatic HTML escaping, manual contextual output escaping, + sandboxing, automatic HTML escaping, manual contextual output escaping, and the inclusion of custom functions and filters that only affect templates. Twig contains little features that make writing templates easier and more concise. Take the following example, which combines a loop with a logical ``if`` @@ -1021,46 +1021,12 @@ assets won't be cached when deployed. For example, ``/images/logo.png`` might look like ``/images/logo.png?v2``. For more information, see the :ref:`ref-framework-assets-version` configuration option. -.. _`book-templating-version-by-asset`: +If you need absolute URLs for assets, use the ``absolute_url()`` Twig function +as follows: -If you need to set a version for a specific asset, you can set the fourth -argument (or the ``version`` argument) to the desired version: - -.. configuration-block:: - - .. code-block:: html+jinja - - Symfony! - - .. code-block:: html+php - - Symfony! - -If you don't give a version or pass ``null``, the default package version -(from :ref:`ref-framework-assets-version`) will be used. If you pass ``false``, -versioned URL will be deactivated for this asset. - -If you need absolute URLs for assets, you can set the third argument (or the -``absolute`` argument) to ``true``: - -.. configuration-block:: - - .. code-block:: html+jinja - - Symfony! - - .. code-block:: html+php +.. code-block:: html+jinja - Symfony! + Symfony! .. index:: single: Templating; Including stylesheets and JavaScripts @@ -1218,7 +1184,7 @@ automatically: .. versionadded:: 2.6 The global ``app.security`` variable (or the ``$app->getSecurity()`` - method in PHP templates) is deprecated as of Symfony 2.6. Use ``app.user`` + method in PHP templates) is deprecated as of Symfony 2.6. Use ``app.user`` (``$app->getUser()``) and ``is_granted()`` (``$view['security']->isGranted()``) instead. diff --git a/reference/configuration/framework.rst b/reference/configuration/framework.rst index aa679a3429b..9700cc31cee 100644 --- a/reference/configuration/framework.rst +++ b/reference/configuration/framework.rst @@ -685,6 +685,7 @@ templating ~~~~~~~~~~ .. _reference-templating-base-urls: +.. _ref-framework-assets-base-urls: assets_base_urls ................ @@ -971,10 +972,6 @@ Now, the same asset will be rendered as ``/images/logo.png?v2`` If you use this feature, you **must** manually increment the ``assets_version`` value before each deployment so that the query parameters change. -It's also possible to set the version value on an asset-by-asset basis (instead -of using the global version - e.g. ``v2`` - set here). See -:ref:`Versioning by Asset ` for details. - You can also control how the query string works via the `assets_version_format`_ option. diff --git a/reference/twig_reference.rst b/reference/twig_reference.rst index 65b866e54a3..353418061e5 100644 --- a/reference/twig_reference.rst +++ b/reference/twig_reference.rst @@ -98,16 +98,12 @@ asset .. code-block:: jinja - {{ asset(path, packageName, absolute = false, version = null) }} + {{ asset(path, packageName) }} ``path`` **type**: ``string`` ``packageName`` **type**: ``string`` | ``null`` **default**: ``null`` -``absolute`` - **type**: ``boolean`` **default**: ``false`` -``version`` - **type**: ``string`` **default** ``null`` Returns a public path to ``path``, which takes into account the base path set for the package and the URL path. More information in @@ -126,6 +122,29 @@ assets_version Returns the current version of the package, more information in :ref:`book-templating-assets`. +absolute_url +~~~~~~~~~~~~ + +.. code-block:: jinja + + {{ absolute_url(asset(path, packageName)) }} + +``path`` + **type**: ``string`` +``packageName`` + **type**: ``string`` | ``null`` **default**: ``null`` + +Returns the absolute URL that corresponds to the given asset path and package. +More information in :ref:`book-templating-assets`. For configuring the base URLs, +:ref:`ref-framework-assets-base-urls`. + +The absolute URLs generated with this function ignore the asset versioning. +Combine it with the ``assets_version()`` function to append the version number: + +.. code-block:: jinja + + {{ absolute_url(asset('logo.png')) ~ '?' ~ assets_version('images') }} + form ~~~~