Don't filter out "missing" files in the glob stage.
Commit bd6b9d89 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.
Showing
Please
register
or
sign in
to comment