[Zope3-dev] Zope 3 web root

Shane Hathaway shane at hathawaymix.org
Thu Feb 9 13:40:51 EST 2006

An idea just occurred to me.  I think others have probably had similar 
ideas, but didn't express it in the right place or time.

Part 1: Let's put an Apache-like web root (similar to 
/var/www/localhost/htdocs/) in Zope instance homes.  It might be called 
"browser" or "www".  Zope will serve pages out of that web root rather 
than an object database.

Part 1 rationale: When people create a Zope instance home, they create 
some config files and an object database.  The root of the site is 
served out of the object database.  To change the default page, newbies 
are directed to create a default page in the object database.  The user 
didn't ask for an object database.  The use of an object database should 
be a choice, not a requirement.  Now the user has to learn some extra 
tools (fssync, etc.) in order to put the files under version control.  I 
think the user experience for both newbies and experts would be much 
better if the root of the site were served from a filesystem directory.

Part 2: Let's add some ZCML directives that define how to interpret 
filenames in the web root by their extension.  Let's also interpret 
special per-directory files that map URI names to filenames, similar to 
Apache .htaccess files.

Part 3: One kind of file we can put in the web root serves as a gateway 
into an object database.  We might use the extension ".zodb" for this 
purpose.  The .zodb file would specify what kind of storage to open, 
where to find it, and what object to load from it.  In a sense, the web 
root would mount the object database.  Some configuration of the web 
root would mount an object database right at the root, enabling Zope 3 
to act just like it does today.

Any thoughts or gut reactions?


More information about the Zope3-dev mailing list