5

電子ブック全体を(ほぼ)読んでAPIを調べた後、
私はまだopaを使用して「従来の」Webサーバーの動作を実現する方法を自問しています。


私は、opaがコンパイル時に指定された外部リソースを実行可能ファイルにリンクし、それらを不変で永続的にすることを理解しています(少なくとも私は信じています) 。

しかし、たとえば、アプリケーションを再コンパイルせずにスタイルシートを変更したい場合はどうすればよいでしょうか。
stdlib(apidoc)にはいくつかのメソッドがあるようですが、他のプログラミング言語で慣れているものをカバーしていません。

私が考えることができる可能な解決策は、内部データベースを利用することですが、
それは従来のファイルI/Oのような単純なものには少しやり過ぎのように見えます。

4

2 に答える 2

6

編集:このブログ投稿では、Opaでの外部リソースの処理について詳しく説明しています。


簡単に言うと、Opaで外部ファイルを操作することはめったにありません。

これを分解してみましょう。Opaは確かにリソースを埋め込みます。しかし、開発モードの場合は、実際にそれら(主にCSS)を微調整して、変更をすぐに確認できるようにしたいだけです。プログラムを非リリースモードでコンパイルした場合、この種のアクションがサポートされます(試し--helpてみてください。以下は抜粋です)。

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

他の多くの編集可能で変更可能なリソースについては、データベースを実際に使用します。

そして、本当にファイルを操作する必要がある場合(ここでも、Opaを使用すると、従来のWeb言語よりもはるかに少なくて済みます)、stdlib.io高度な使用法についてはBslFile、ファイル操作用のOcaml関数にバインドされたモジュールを参照してください。

于 2011-07-05T18:17:43.520 に答える
2

このモジュールはあなたにぴったりだと思います:http: //opalang.org/resources/doc/index.html#file.opa.html/!/ value_stdlib.io

import stdlib.io
my_css = File.content("css/file.css")

ファイルを書き込む方法がわかりませんが、書き込む必要がある場合は、dbを使用する必要があると思います。しかし、読むために私はこれが解決策だと思います:)

于 2011-07-05T18:07:16.960 に答える