mirror of
https://github.com/django/django.git
synced 2025-11-20 03:30:00 +00:00
When running collectstatic with a hashing static file storage backend, URLs referencing other files were normalized with posixpath.normpath. This could corrupt URLs: for example 'a.css#b/../c' became just 'c'. Normalization seems to be an artifact of the historical implementation. It contained a home-grown implementation of posixpath.join which relied on counting occurrences of .. and /, so multiple / had to be collapsed. The new implementation introduced in the previous commit doesn't suffer from this issue. So it seems safe to remove the normalization. There was a test for this normalization behavior but I don't think it's a good test. Django shouldn't modify CSS that way. If a developer has rendundant /s, it's mostly an aesthetic issue and it isn't Django's job to fix it. Conversely, if the user wants a series of /s, perhaps in the URL fragment, Django shouldn't destroy it. Refs #26249. |
||
|---|---|---|
| .. | ||
| apps | ||
| project | ||
| urls | ||
| __init__.py | ||
| cases.py | ||
| settings.py | ||
| storage.py | ||
| test_finders.py | ||
| test_forms.py | ||
| test_liveserver.py | ||
| test_management.py | ||
| test_storage.py | ||
| test_templatetags.py | ||
| test_views.py | ||