Url rewriting 用CouchDB重写URL
我正在构建我的第一个CouchApp(一个简单的博客引擎),以便了解更多关于它的信息。现在,我已将其工作到以下URL返回博客帖子的程度:Url rewriting 用CouchDB重写URL,url-rewriting,couchdb,Url Rewriting,Couchdb,我正在构建我的第一个CouchApp(一个简单的博客引擎),以便了解更多关于它的信息。现在,我已将其工作到以下URL返回博客帖子的程度: http://127.0.0.1:5984/couchblog/_design/couchblog/_list/index/posts 我有一个名为posts的视图来返回我的帖子,还有一个名为index的列表来呈现帖子。所以我想我的下一步是将URL重写为更友好的内容。不幸的是,我似乎有点含糊不清,我似乎什么都做不到 我的设计文档的“重写”部分如下所示: re
http://127.0.0.1:5984/couchblog/_design/couchblog/_list/index/posts
我有一个名为posts
的视图来返回我的帖子,还有一个名为index
的列表来呈现帖子。所以我想我的下一步是将URL重写为更友好的内容。不幸的是,我似乎有点含糊不清,我似乎什么都做不到
我的设计文档的“重写”部分如下所示:
rewrites: [{
from: '../../../',
to: '/_list/index/posts',
method: 'GET',
query: ''
}],
我想重写它,这样它就可以从web服务器根目录中提供博客文章列表,但我似乎无法使用它。有人能看出我做错了什么吗?我通过自制在OS X Snow Leopard上使用CouchDB 1.6.0
我想重写它,这样它就可以从web服务器根目录提供博客文章列表
我认为您需要在couchdb配置中为此配置vhosts设置。这一点在本文中有很好的介绍,因此我将在这里发布相关部分:-
要添加虚拟主机,请为域名添加指向DNS的CNAME指针。对于开发和测试,在主机文件中添加一个条目就足够了,在类Unix操作系统上通常是/etc/hosts`
测试此功能是否正常工作:
最后,在[vhosts]*部分的配置文件中添加一个条目:
如果CouchDB正在默认HTTP端口(80)上侦听,或者位于代理之后,则不需要在vhost密钥中指定端口号
*顺便说一句,你也可以用蒲团做这个。只需确保在配置vhosts部分后重新启动couchdb。其他明智的改变不会产生任何效果
然而,对于我们的例子,我们需要将vhosts部分映射到数据库上的重写处理程序。所以我们的虚拟主机看起来像这样:-
couchdb.local:5984 = your-db/_design/your-design/_rewrite
修改您的倒带处理程序以及
rewrites: [{
from: 'index',
to: '/_list/index/posts',
method: 'GET',
query: ''
}]
现在,如果您向
couchdb.local:5984/索引
你应该看到一个帖子列表 你能提供一些关于什么不起作用的细节吗?我有127.0.0.3端口80上的开发couchdb。这样我就不必在url中指定端口。只需将/etc/hosts设置为
127.0.0.3 mycouchapp
。您知道关于重写的更好的文档吗。我曾经是这里的一员,但现在遇到了另一个问题,我看到有一个新的重写函数,但这也没有很好的文档记录(我可以同时使用这两种机制吗,如何使用新的机制等等)
[vhosts]
couchdb.local:5984 = /example
*.couchdb.local:5984 = /example
couchdb.local:5984 = your-db/_design/your-design/_rewrite
rewrites: [{
from: 'index',
to: '/_list/index/posts',
method: 'GET',
query: ''
}]