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?
Zope3-dev mailing list