Suave 提供静态文件
Suave serve static files
我想使用 suave
提供我 'public' 文件夹中的所有文件
在我的public里面我有:
/index.html
/styles/main.css
/scripts/app.js
/images/*.(png|jpg)
我使用 homeFolder 吗?或者这是如何工作的?是否需要将 public 文件夹复制到我的 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
我发现这也很难做到,因为它没有真正的文档记录。我没有找到 Carsten 链接到上面的博客,所以我在浏览 Suave 源代码及其 GitHub 存储库中的示例后设法想出了这个:
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
我使用 browseHome
因为这是一个控制台应用程序,我只想提供 exe 目录中的文件。我想你会想要使用 browse
(source code)
并且 here are some examples 您可能会发现有用。
我想使用 suave
提供我 'public' 文件夹中的所有文件在我的public里面我有:
/index.html
/styles/main.css
/scripts/app.js
/images/*.(png|jpg)
我使用 homeFolder 吗?或者这是如何工作的?是否需要将 public 文件夹复制到我的 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
我发现这也很难做到,因为它没有真正的文档记录。我没有找到 Carsten 链接到上面的博客,所以我在浏览 Suave 源代码及其 GitHub 存储库中的示例后设法想出了这个:
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
我使用 browseHome
因为这是一个控制台应用程序,我只想提供 exe 目录中的文件。我想你会想要使用 browse
(source code)
并且 here are some examples 您可能会发现有用。