>On Oct 8, 2013, at 5:01 AM, "Mark Deibert" > wrote:
>
>Hey Stanley :-)
>
>Thanks for the advice and for a normal, CouchDB only setup, you're info is
>correct. However, with a Couchapp, it works a bit different. You have to
>setup the rewrites.js(json) file in your Couchapp directory structure and
>then it pushes the rewrite property to a specific doc in CouchDB. So the
>rewrites property is on the correct document. I _think_ my problem is in my
>paths. Either the vhosts, or in the rewrite "from" and/or the "to". I was
>hoping some here is using rewrites and would notice something in my
>provided code.

All good things come to those who wait ;-). I re-read the beginning of the 
thread but it's not quite clear what you're trying to do -- if this is just a 
portion of your rewrite requirements, or the only requirement.

>Also, I keep "services" open the background restart Couch after nearly
>every change. When you change one of the ini's, you have to.
>
>Thanks again for your help :-)
>
>Mark

Hey Mark,

For your example you don't need rewrites, so let's get a simple solution in 
place first & work from there.

Also, if you update couchdb settings via futon or the terminal, it Does The 
Right Thing with Erlang Magic, and won't need a restart. e.g.:

curl  -XPUT http://admin:passwd@localhost:5984/_config/vhosts/methods 
--data-binary '"GET, POST, PUT, DELETE, OPTIONS, HEAD"'

or similar does the trick.

## local.ini

[vhosts]
feedme =  /feedme/site/index.html

Obviously feedme exists in /etc/hosts or dns already, and /feedme/ is the 
couchdb, /site/ is a document (not a design doc, but it could be), and 
/index.html is an attachment within that doc. This means a normal couchdb user 
can serve an entire html site/app from a single document, so long as vhosts are 
set up. IMO this is amazing.

### check that vhost is active

GET /_config/vhosts HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate, compress
Authorization: Basic YWRtaW46cGFzc3dk
Content-Type: application/json; charset=utf-8
Host: localhost:5984
User-Agent: HTTPie/0.8.0-dev

HTTP/1.1 200 OK
Cache-Control: must-revalidate
Content-Length: 127
Content-Type: application/json
Date: Tue, 08 Oct 2013 18:09:51 GMT
Server: CouchDB/1.5.0+build. (Erlang OTP/R16B02)

{
    "feedme": "/feedme/site/index.html",
    "testy": "/testy/site/index.html"
}

## upload a doc + attachment

I'm cheating slightly here by using a new doc and avoiding needing to pass the 
old rev in, that's an Excercise for the Reader. I use the excellent 
python-based http://httpie.org/ tool, but you can do this with futon or 
whatever easily.

http put $COUCH/feedme/site/index.html content-type:'text/html; charset=utf-8' 
< index.html

## check that it all works

http get http://feedme:5984/                                                    
                                                                                
              
GET / HTTP/1.1
Accept: application/json
Accept-Encoding: gzip, deflate, compress
Content-Type: application/json; charset=utf-8
Host: feedme:5984
User-Agent: HTTPie/0.8.0-dev

HTTP/1.1 200 OK
Accept-Ranges: none
Cache-Control: must-revalidate
Content-Encoding: gzip
Content-Length: 189
Content-MD5: Vfjf6/NxkRUmfgCLdb1Uvw==
Content-Type: text/html; charset=utf-8
Date: Tue, 08 Oct 2013 18:10:44 GMT
ETag: "Vfjf6/NxkRUmfgCLdb1Uvw=="
Server: CouchDB/1.5.0+build. (Erlang OTP/R16B02)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
  <title>vhosting</title>
</head>
<body>
  vhosts in your couch
</body>
</html>

Is this sufficient, or do you have a more complex situation that needs rewrites?

A+
Dave


Reply via email to