0

我有 couchapp 工作正常。

这有效: http
://domain.com/file.html 这无效:http ://domain.com/file

我想让它明白,如果没有扩展名,它应该尝试 .html 扩展名。

我不确定这是 _rewrite 规则(我用来美化我的 URL)还是其他什么。

4

1 回答 1

3

AFAIK 重写当前不能用于将后缀添加到 URL 路径中的匹配变量。

您可以使用的另一种方法是将 file.html 的内容放入给定键(名为“content”或类似名称)下的 id 为“file”的文档中,创建一个显示函数 [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

于 2013-05-21T13:15:52.723 回答