2016-01-27 8 views
8

に仕える私は私が持っている私の公共の内側に柔らかサーブ静的ファイルに

と私の「パブリック」フォルダ内のすべてのファイルを提供したいでしょうか?または、これはどのように機能しますか?パブリックフォルダは、binフォルダ内の実行可能ファイルの隣にコピーする必要がありますか? コードスニペットをいただければ幸いです。ありがとう。

編集:

ソリューションは、次のようになります。

open Suave 
open Suave.Filters 
open Suave.Operators 
open Suave.Successful 
open System.IO 

let app = 
    choose [ 
     GET >=> choose 
      [path "/" >=> OK "test" ; Files.browseHome] 
     POST >=> choose 
      [path "/foo" >=> OK "thanks"] 
    ] 

let myHomeFolder = Path.Combine(Directory.GetCurrentDirectory(), "public") 

let cfg = { 
    defaultConfig with 
     homeFolder = Some(myHomeFolder) 
    } 

[<EntryPoint>] 
let main argv = 
    printfn "%A" argv 
    startWebServer cfg app 
    System.Console.ReadLine() |> ignore 
    0 // return an integer exit code 
+0

[質問にはすべてあなたが求めたものが含まれている](https://suave.io/files.html) – Carsten

+2

申し訳ありませんが、https://suave.io/files.htmlはあまり役に立ちません。 – user1613512

+0

よくok - google/bingへの別の短いクエリは、[this](http://blog.geist.no/suave-io-introduction-and-example-part-3-requests-and-routing/)という結果をもたらします。 – Carsten

答えて

10

私はそれが実際に文書化されていないとしてもそうする、これは非常に困難を発見しました。これはコンソールがあるので、私はbrowseHomeを使用

open Suave 
open Suave.Operators 

let app = 
    choose 
     [ Filters.GET >=> choose 

      [ Filters.path "/" >=> (
        "My main page" 
        |> Successful.OK) 

       Files.browseHome ] ] // <-- The important part 

[<EntryPoint>] 
let main x = 
    Web.startWebServer Web.defaultConfig app |> ignore 
    0 

:私はカーステンはので、私はサーブソースコードをトロールした後、この思い付くために管理の上にリンクされているブログとそのGitHubのレポの例を見つけることができませんでしたappと私はちょうどexeディレクトリからファイルを提供したかった。 browsesource code

here are some examplesをご利用になると思います。

+1

助けてくれてありがとう、私のhomeDirectoryが絶対パスになる必要があります。 – user1613512