File io 如何在Opa中进行文件I/O?

File io 如何在Opa中进行文件I/O?,file-io,opa,File Io,Opa,阅读(几乎)整本电子书并查看API后 我仍然在问自己如何用opa实现“传统”的web服务器行为 我了解(至少我相信)opa链接了 将时间编译到可执行文件中,使其不可变且永久不变 但是,如果我想在不重新编译的情况下更改应用程序的样式表,该怎么办? stdlib()中似乎有一些方法,但它们没有涵盖 我习惯于从其他编程语言中学习 我能想到的一个可能的解决方案是利用内部数据库, 但对于传统的文件I/O这样简单的东西来说,这似乎有点过头了。我认为这个模块适合您: 我没有看到写文件的方法,但我认为如果需要

阅读(几乎)整本电子书并查看API后
我仍然在问自己如何用opa实现“传统”的web服务器行为

我了解(至少我相信)opa链接了
将时间编译到可执行文件中,使其不可变且永久不变

但是,如果我想在不重新编译的情况下更改应用程序的样式表,该怎么办?
stdlib()中似乎有一些方法,但它们没有涵盖 我习惯于从其他编程语言中学习

我能想到的一个可能的解决方案是利用内部数据库,

但对于传统的文件I/O这样简单的东西来说,这似乎有点过头了。

我认为这个模块适合您:

我没有看到写文件的方法,但我认为如果需要写,应该使用db。 但要阅读,我认为这就是解决方案:)

编辑:博客文章解释了更多关于在Opa中处理外部资源的内容


长话短说:在Opa中很少使用外部文件

让我试着把它分解一下。Opa确实将嵌入资源。但对于开发模式,您确实希望能够调整它们(主要是CSS)并立即看到更改。如果您在非发布模式下编译程序,那么它将支持此类操作(请尝试
--help
,以下是摘录)

对于许多其他可编辑和更改的资源,可以不使用数据库


如果你真的需要使用文件(同样:使用Opa,你需要的文件比使用传统web语言要少得多),那么请看一下
stdlib.io
,以及
BslFile
模块,该模块绑定到Ocaml函数进行文件操作。

非常感谢akoprowski,我不知道调试模式。我会仔细看看的!好的,享受它:)。通常,如果您想感谢StackOverflow上的答案,您可以向上投票并/或选择它作为您的问题的答案:)
import stdlib.io
my_css = File.content("css/file.css")
Debugging Resources : dynamic edition:
    [...]
    --debug-editable-css
                Export the CSS files embedded in the server to the file
                system, so that they can be viewed and edited during
                execution of the application