Files
cms-core/Documentation/Changelog/14.0/Breaking-107537-UrlGenerationSystemResources.rst

192 lines
5.9 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
.. include:: /Includes.rst.txt
.. _breaking-107537-1760339938:
=================================================================
Breaking: #107537 - Changes in URL generation of system resources
=================================================================
See :issue:`107537`
Description
===========
The following changes are considered breaking, although their impact is
expected to be very low.
* TypoScript getData function :typoscript:`path` previously returned a
relative URL and now returns an absolute URL (prepended with
:typoscript:`absRefPrefix`).
* Access to FAL storages via relative path (`fileadmin/templates/main.css`)
is limited to the default storage defined in :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir']`.
* All generated system resource URLs now include cache busting.
* Adding custom query strings to resource identifiers no longer disables cache
busting — both are now applied.
.. _breaking-107537-gettext-path:
getText "path" in TypoScript
----------------------------
.. code-block:: typoscript
:caption: EXT:my_extension/Configuration/TypoScript/setup.typoscript
:emphasize-lines: 3
page.20 = TEXT
page.20 {
data = path : EXT:core/Resources/Public/Icons/Extension.svg
}
.. code-block:: text
:caption: Result (TYPO3 classic mode note the leading "/")
"path" result before: typo3/sysext/core/Resources/Public/Icons/Extension.svg
"path" result now: /typo3/sysext/core/Resources/Public/Icons/Extension.svg
.. code-block:: text
:caption: Result (TYPO3 Composer mode note the leading "/")
"path" result before: _assets/5f237792cbcdc97cfceade1e16ea33d7/Icons/Extension.svg
"path" result now: /_assets/5f237792cbcdc97cfceade1e16ea33d7/Icons/Extension.svg
.. _breaking-107537-relative-fal-resource:
Relative path to FAL Storage
----------------------------
Referencing resources via relative path does only work for the default FAL storage
defined in :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['fileadminDir']`.
This means if you have other local FAL storages configured, you need to use the FAL resource syntax
(e.g. `FAL:42:/path/to/file.css`) to reference files in such storage instead of using relative paths
(e.g. `my-other-fileadmin/path/to/file.css`).
It is generally recommended to use explicit resource identifiers (App resources or FAL resources),
instead of relative paths.
.. _breaking-107537-cachebusting:
All generated URLs now contain cache busting
--------------------------------------------
All generated resource URLs now include cache busting.
For example, icon URLs that previously had no cache busting will now contain a
cache-busting query string.
.. _breaking-107537-querystrings:
Additional query strings applied to the resource identifier
-----------------------------------------------------------
When adding custom query strings to resource identifiers, TYPO3 previously
disabled cache busting.
Now, both the custom query string and the cache-busting parameter are applied.
If custom query strings were used as manual cache busters, you can now remove
them safely.
.. code-block:: typoscript
:caption: EXT:my_extension/Configuration/TypoScript/setup.typoscript
:emphasize-lines: 3
page.20 = TEXT
page.20 {
data = asset : EXT:core/Resources/Public/Icons/Extension.svg?v=1234
}
.. code-block:: text
:caption: Result
result before: /typo3/sysext/core/Resources/Public/Icons/Extension.svg?v=1234
result now: /typo3/sysext/core/Resources/Public/Icons/Extension.svg?v=1234&1709051481
Impact
======
.. _breaking-107537-impact-gettext-path:
getText "path" in TypoScript
----------------------------
All usages of :typoscript:`path` in TypoScript :typoscript:`data` now resolve
to absolute URLs instead of relative ones.
.. _breaking-107537-impact-relative-fal-resource:
Relative path to FAL Storage
----------------------------
In installations referencing resources in additional local FAL storages using
a relative path syntax, an exception is thrown.
.. _breaking-107537-impact-cachebusting:
All generated URLs now contain cache busting
--------------------------------------------
Generated URLs differ slightly from previous TYPO3 versions, especially when
cache busting was not applied before.
.. _breaking-107537-impact-querystrings:
Additional query strings applied to the resource identifier
-----------------------------------------------------------
URLs now include both the original query string and the cache-busting
parameter, resulting in different output compared to earlier TYPO3 versions.
Affected installations
======================
.. _breaking-107537-affected-gettext-path:
getText "path" in TypoScript
----------------------------
All installations using :typoscript:`path` in TypoScript :typoscript:`data`.
.. _breaking-107537-affected-relative-fal-resource:
Relative path to FAL Storage
----------------------------
All installations referencing resources in additional local FAL storages using
a relative path syntax (e.g. `my-other-fileadmin/path/to/file.css`).
.. _breaking-107537-affected-cachebusting:
All generated URLs now contain cache busting
--------------------------------------------
All installations having third party code, that misuses generated URLs
to assume file system paths from them.
.. _breaking-107537-affected-querystrings:
Additional query strings applied to the resource identifier
-----------------------------------------------------------
All installations using resource identifiers with custom query strings, for
example:
`EXT:foo/Resources/Public/rte.css?v=123`
Migration
=========
Relative path to FAL Storage
----------------------------
Either convert the relative path to a FAL resource like so:
`FAL:1:/path/to/file.css`
Alternatively it is possible to convert it to a resource URI:
`URI:/my-other-fileadmin/path/to/file.css`
The first will add cache busting, the latter will use the URI as is.
.. index:: Frontend, NotScanned, ext:frontend