Skip to content
This repository has been archived by the owner on Dec 3, 2019. It is now read-only.

MEDUSA_URL_PREFIX, and exception handling + logging fixes when running in multiprocessing #13

Open
wants to merge 24 commits into
base: master
Choose a base branch
from

Conversation

hyperair
Copy link

On setups where a Django project is hosted on a non-root URI, it is necessary to prefix reversed absolute URIs with the script prefix in the statically generated pages in order to avoid broken links.

kezabelle added a commit to kezabelle/django-jackfrost that referenced this pull request Jun 1, 2015
This adds an optional MEDUSA_URL_PREFIX setting option that causes Django's URL
reversing to render URLS prefixed with this string. This is necessary when
hosting Django projects on a URI path other than /, as a proper WSGI environment
is not present to tell Django what URL prefix to use.
On typical Renderer implementations, get_paths() uses Django's URL reversing,
which is affected by the set_script_prefix() call, so ensure that's pre-cached
first.
This avoids skipping up to 4 pages per failed page.
Most of these are duplicated across the various StaticSiteRenderer classes,
which makes it rather hard to patch the default behaviour. This deduplicates the
code from the various .generate() implementations into a single base class,
allowing render_path() to be overridden easily while still retaining the
MEDUSA_MULTITHREAD logic.
The django.test.client and output path generation logic is common across all the
renderers. This commit only updates DiskStaticSiteRenderer, the others will be
ported in coming commits.
This allows us to override it in derived renderers, e.g. in the S3 renderer when
we need to force everything onto index.html.
In Python 2.6, logging.Handler isn't a new-style class.
This avoids an exception in Python 2.6 upon exiting caused by the still-active
QueueListener thread.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant