Skip to content

Commit 5604b07

Browse files
committed
Don't filter out "missing" files in the glob stage.
Commit bd6b9d8 dramatically changed the way that files are loaded, and had the side-effect of filtering out any files which were sourced by finders outside of the main `STATICFILES_DIRS`. In the case I'm trying to address, we have an extension framework (in Review Board and Djblets) which can load static media from third-party packages which are activated at runtime. This media is loaded by instantiating `StylesheetNode` and `JavascriptNode` from `pipeline.templatetags` in combination with a special finder. Because django-pipeline no longer uses finders before the compile stage, calling `storage.exists` (via `Package.sources` -> `glob`) silently filters these out. Inside `glob`, I agree that it's useful to test existence when trying to expand `*` or `?`, but when the path is just a normal filename, it should be safe to assume that the user knows what they're doing. This causes the paths to be emitted into the rendered template whether or not `staticfiles_storage` claims they exist, and anything which the configured staticfiles finders can't locate will surface as a 404 rather than being silently eaten.
1 parent 9ca6cbe commit 5604b07

File tree

1 file changed

+1
-6
lines changed

1 file changed

+1
-6
lines changed

pipeline/glob.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,7 @@ def iglob(pathname):
2525
2626
"""
2727
if not has_magic(pathname):
28-
try:
29-
if staticfiles_storage.exists(pathname):
30-
yield pathname
31-
except NotImplementedError:
32-
# Being optimistic
33-
yield pathname
28+
yield pathname
3429
return
3530
dirname, basename = os.path.split(pathname)
3631
if not dirname:

0 commit comments

Comments
 (0)