Я пробую пример фрагмента под названием «Добавление функциональности на стороне клиента» со следующей страницы:
https://developers.websharper.com/docs/v4.x/fs/overview
Это выглядит немного устаревшим и не компилируется как естьТаким образом, основываясь на исходном репозитории, из которого был извлечен этот код, это то, что у меня есть сейчас.
namespace TestSuaveWs
open WebSharper
open WebSharper.Sitelets
open WebSharper.UI
open WebSharper.UI.Html
open WebSharper.UI.Client
module Server =
[<Rpc>]
let DoWork (s: string) =
async {
return System.String(List.ofSeq s |> List.rev |> Array.ofList)
}
[<JavaScript>]
module Client =
open WebSharper.JavaScript
open WebSharper.Html.Client
let Main () =
let input = Input [ Attr.Value "" ]
let output = H1 []
Div [
input
Button [ Text "Send" ]
|>! OnClick (fun _ _ ->
async {
let! data = Server.DoWork input.Value
output.Text <- data
}
|> Async.Start
)
HR []
H4 [ Class "text-muted" ] -- Text "The server responded:"
Div [ Class "jumbotron" ] -< [ output ]
]
module TheSite =
open WebSharper.UI.Server
[<Website>]
let MySite =
Application.SinglePage (fun ctx ->
Content.Page(
Body = [
h1 [] [ text "Say Hi to the server" ]
div [] [ client <@ Client.Main() @> ]
]
)
)
open global.Suave
open Suave.Web
open WebSharper.Suave
let webPart = WebSharperAdapter.ToWebPart(MySite, RootDirectory="../..")
Тогда есть основная программа.
namespace TestSuaveWs
module Main =
open System
open System.Threading
open Suave
[<EntryPoint>]
let main argv =
let cts = new CancellationTokenSource()
let conf = { defaultConfig with cancellationToken = cts.Token }
let listening, server = startWebServerAsync conf TheSite.webPart
Async.Start(server, cts.Token)
printfn "Make requests now"
Console.ReadKey true |> ignore
cts.Cancel()
0
Программа запускается, иЯ вижу текст «Скажи привет серверу» на localhost: 8080, но под этим текстом ничего нет.Рисунок на странице с примером показывает, как это должно выглядеть.Там должно быть поле для ввода текста, кнопка и текст ответа.
Когда я открываю Инструменты разработчика в моем браузере Chrome, я вижу, что есть куча похожих сообщений, отличающихся только именем файла javascript., что говорит: «Не удалось загрузить ресурс: сервер ответил со статусом 404 WebSharper.Main.min.js: 1 (не найдено)»
В папке bin \ Debug нет файлов * .js,Я работаю в VS 2019 с .NET Framework 4.7.1.
Чего мне не хватает?