English 中文(简体)
在Compaojure 中动态增加路线
原标题:Dynamically adding routes in compojure

我有一个在Compaojure的“等级”网站,

(defroutes main-routes
  (GET "/" [] (resp/redirect "/public/index.html")
  (GET "/blog" [] (resp/redirect "/public/blogs/index.html")
  (GET "/tools" [] (resp/redirect "/public/tools/index.html"))

不过,我希望这些网页更具有活力,也就是说,我希望索引.html网页能够通过扫描/博客目录的内容产生,同样,也希望能够扫描/工具路径。

最后,我希望路线看起来如此:

(defroutes main-routes
      (GET "/" [] (resp/redirect "/public/index.html")
      (GET "/blog" [] (generate-index "/public/blog"))
      (GET "/tools" [] (generate-index "/public/tools")))

是否有一个简单的路线图, 通过compajure在我的网站建立动态路径?

更具体地说,( generate- index) 功能扫描输入路径, 并返回所有文件的链接, 有建议吗? 我想Compaojure可能已经具备了这样的功能, 因为最近出现了如此多基于这种语系的博客平台。

问题回答

做你所说的大多数事情 相当简单。

有两件事你将特别想看, 还有一些一般的读物, 帮助你了解到底发生了什么。

首先,您要查看某种形式的 HTML Templating 工具。 虽然可以建立必要的字符串, 但是如果您使用一个字符串, 事情就会简单一些。 我为它们看过两种不同的风格, 选择哪种取决于您的口味 。

  • Hiccup is focused on taking Clojure data structures and transforming them into HTML
  • Enlive is focused on taking HTML template files and transforming them into the correct end form

要实际获取文件列表, 请考虑使用 < a href=" http://clojure.github.com/ clojure/clojure. core- api. html# clojure. core/ file- seq" rel=“ nofollow” {{{code> file- seq 。 将文件名转换为适当的邮箱名称和文件, 然后作为数据生成页面链接 。

你将要了解的另外一件事是 Compojure 路线模板 和更多关于Ring Responses 的链接。

compojure s 路径模板使得在路径参数中很容易通过, 您可以从中生成响应 。 下面是一个简单的示例, 用于使用 html 页面名称作为参数的简单静态 html 文件 。

(GET "/blog/:post" [post] (ring/file-response (str "/public/blogs/" post ".html")))

最后,考虑阅读其他的Compojure 和 Ring wikis。 Ring wiki 提供了一些关于核心“如何运作”的非常好的信息。Compojure wiki 提供了一些关于如何最好地利用Compojure的好例子,它只是侧重于提供一种简单的方式 — — 但绝非唯一的方法 — — 来操作线路,让Ring 的页面生成变得容易。

视您希望网站前往何处, 我也会考虑查看Noir , 这是一个很好的框架, 可以汇集所有内容,解决这个过程中的一些共同问题。





相关问题
Code snippet paths in GCC

Background: Keil C51 on a PC, currently moving to GCC (CrossPack-AVR) on an iMac. Since I write firmware for micro s I have a lot of driver source files etc. that I need to include with my programs,...

C#/.NET app doesn t recognize Environment Var Change (PATH)

In my C# app, I am programmatically installing an Oracle client if one is not present, which requires adding a dir to the PATH system environment variable. This all works fine, but it doesn t take ...

PHP absolute path to file URI

In order to refer to a local DTD when using PHP SimpleXML, I need to convert the absolute path into a file type URI. For example, convert /home/sitename/www/xml/example.dtd to file:///home/sitename/...

Check if files with absolute and relative path exists

Is there a way to check whether files (with either an absolute or relative path) exists? Im using PHP. I found a couple of method but either they only accept absolute or relative but not both. Thanks.

How to get file path of the file with the running-vba code

I want to get the folder path from the file who is running the vba-code. For example: the vba-code is in the file C:myfolderfile.accdb and I want the vba-code to return C:myfolder Is that ...

热门标签