如何让 couchapp 提供没有扩展名的文件(隐含 .html)

Posted

技术标签:

【中文标题】如何让 couchapp 提供没有扩展名的文件(隐含 .html)【英文标题】:How to get a couchapp to serve a file with no extension (implied .html) 【发布时间】:2013-05-21 04:28:11 【问题描述】:

我的 couchapp 运行良好。

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

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

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于如何让 couchapp 提供没有扩展名的文件(隐含 .html)的主要内容,如果未能解决你的问题,请参考以下文章

CouchDB - CouchApp 的任何替代品?

Couchapp:如何存储文件?

如何使用 CouchApp 对 CouchDB 进行 TDD?

如何从 CouchDB 中提取 CouchApp

列出 CouchDB 中的所有 CouchApp?

couchapp 不生成 loader.js