On Sat, Jul 10, 2010 at 12:49 AM, Carl Meyer <carl.j.me...@gmail.com> wrote:
> On Jul 7, 7:11 pm, Graham Dumpleton <graham.dumple...@gmail.com>
> wrote:
> [snip]
>> web application, to be a well behaved WSGI citizen, should honour
>> SCRIPT_NAME setting as supplied by the server, and ensure that ways
>> are provided such that everything in the users code, including
>> configuration, urls or settings files, can be expressed relative to
>> the URL that the application is mounted at, thereby avoiding as much
>> as possible any need for a user to modify their code base when
>> deploying to a new environment at a different location in URL
>> namespace.
>
> IMO one root problem here (which has been discussed before) is that
> settings.py conflates "deployment config" with "application config"
> and thus tends to lead to fuzzy thinking about which is which (which
> causes problems especially for larger organizations with separate
> teams for development and ops). Application config should not have to
> change between different deployments of the same codebase; deployment
> config almost certainly will.
>
> The status quo makes LOGIN_URL (and friends) themselves a mishmash of
> deployment config and application config; i.e. the initial
> "application mount point" portion is deployment config, and the rest
> is clearly application config (it would only change if the URLconf
> changes). This seems like a bad thing to me: the ops team shouldn't
> have to understand the internal layout of the application's urls in
> order to deploy it correctly.

This is a certainly a criticism I would agree with. An improved app
config/deployment config distinction is a broad goal that is worth
striving for.

> Wouldn't it be most sensible to treat the URL mount point similarly to
> hostname, since they are really just two pieces of the same data: the
> deployed root URL of the application? (Practically speaking, this
> could mean a new field in contrib.sites.Site, or allowing/condoning
> "example.com/something" as a value for the domain field, and extending
> RequestSite to do the same by checking SCRIPT_NAME).

I'm not sure I understand exactly what you're describing here. Lets
say we modify Site, and I have the mount point data described in my
Site.objects.get_current() instance; are you proposing that anywhere
that you use LOGIN_URL, we should be prepending site.mount_point (or
whatever the bikeshed looks like)?

If so, how do we get from here to there? For better or worse, if
you're deploying a Django site at a non-root SCRIPT_NAME, you will
have a LOGIN_URL that includes that SCRIPT_NAME; how do you propose
that we transition to a mount-point based interpretation?

Yours,
Russ Magee %-)

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-develop...@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to