如何使用couchapp来提供没有扩展名的文件(暗示.html)

时间:2013-05-21 04:28:12

标签: couchdb couchbase couchapp

我有couchapp工作正常。

这有效:http://domain.com/file.html
这不是:http://domain.com/file

我希望它理解如果没有扩展名,它应该尝试.html扩展名。

我不确定这是否是_rewrite规则(我用它来美化我的网址)或其他内容。

1 个答案:

答案 0 :(得分:3)

AFAIK重写目前无法用于为URL路径中的匹配变量添加后缀。

您可以使用的另一种方法是将file.html的内容放入给定键(名为“content”或类似名称)下的id为“file”的文档中,创建一个show函数[1](称之为比如“render”)输出内容类型为“text / html”的那个键的值,然后创建一个重写器,如:

{
    "from": "/:doc",
    "to": "/_show/render/:doc",
    "method": "GET",
    "query": {
    }
}

完整的设计文档如下所示:

{
  "_id": "_design/rewrite",
  "shows": {
    "render": "function(doc) { return { headers: { \"Content-Type\": \"text/html\"}, body: doc.content } }"
  },
  "rewrites": [
    {
      "query": {},
      "method": "GET",
      "to": "/_show/render/:doc",
      "from": "/:doc"
    }
  ]
}

以及相应的文档:

{
  "_id": "file",
  "content": "<html>html content of doc goes here</html>"
}

我已经分享了一个遵循上述模式的例子[2]。

[1] http://wiki.apache.org/couchdb/Formatting_with_Show_and_List

[2] https://mikewallace.cloudant.com/rewriter/_design/rewrite/_rewrite/file