-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Django sites with manage.py symlinks or similar unconventional configurations #972
Comments
@monokrome Hi! Sorry for the delayed reply. I'm working on adding Django collectstatic support for the upcoming Python CNB (Cloud Native Buildpack) that's due to replace this buildpack, and would like to understand the use-case of not having a |
The classic Heroku Python buildpack automatically runs the Django `collectstatic` command: https://github.com/heroku/heroku-buildpack-python/blob/main/bin/steps/collectstatic This adds equivalent support, with a couple of improvements: - This implementation performs more checks to see whether the app is actually using the static files feature before trying to run it (reducing the number of cases where users would need to manually disable it). - The collectstatic symlink feature has been enabled, as requested in heroku/heroku-buildpack-python#1060. - Symlinked `manage.py` files are now supported, as requested in heroku/heroku-buildpack-python#972. - The error messages are finer grained/more useful. - There are many more tests (including now testing legacy vs latest Django versions, to check the CLI arguments used work for both ends of the spectrum). There is currently no way to force disable the feature (beyond removing `django.contrib.staticfiles` from `INSTALLED_APPS` in the app's Django config, or removing the `manage.py` script). Supporting this depends on us deciding how best to handle buildpack options, so will be added later, in #109. The build log output and error messages are fairly reasonable already (and a significant improvement over the classic buildpack), and will be further polished as part of the future build output overhaul. The implementation uses the new `utils::run_command_and_capture_output` added in #106. See: * https://docs.djangoproject.com/en/4.2/howto/static-files/ * https://docs.djangoproject.com/en/4.2/ref/contrib/staticfiles/ * https://docs.djangoproject.com/en/4.2/ref/settings/#settings-staticfiles Fixes #5. GUS-W-9538294.
There is an issue where
manage.py
can not be detect as a symlink becausefind -f
doesn't find it.Some Django projects also don't use manage.py, as
createproject
can take different templates for starting projects. Some people (myself included) create Django projects from scratch.In order to support this, would it be considered if I wanted to implement a way to provide a custom Django management command via environment variables?
The text was updated successfully, but these errors were encountered: