在 Nim 中捆绑静态资源的最佳方式是什么?

What is the best way to bundle static resources in Nim?

目前,我正在使用 Jester 编写 Web 应用程序,并希望通过捆绑所有静态资源(CSS、HTML、JS)来方便部署。

在 Nim 中执行此操作的最佳方法是什么?

基本方法是使用staticRead(又名slurp)在编译时读取文件并将其作为程序中的常量。这可能会很快变得乏味,因为您需要手动为每个文件执行此操作,或者生成一个 .nim 文件,其中包含许多 staticRead() 调用,这些调用基于目录的当前文件,然后再使用它们变量。

另一种方法可能是 zip all files 并让您的程序在运行时 read/unpack 它们。如果您只是想使用它来减少部署中的文件混乱,则可以在不压缩的情况下创建 zip,尽管您可以尝试快速压缩设置,这通常会提高整体速度(IO 很慢,因此您的程序最终会花费更少的时间等待读取完成,CPU 非常擅长解压。

结合以上内容,您可能希望将 zip 文件嵌入二进制文件并将其用作一种嵌入式虚拟文件系统。