On Friday, 8 May 2015 at 10:20:35 UTC, Rikki Cattermole wrote:
On 8/05/2015 10:17 p.m., Chris wrote:
On Thursday, 7 May 2015 at 19:51:20 UTC, yawniek wrote:
On Thursday, 7 May 2015 at 18:59:13 UTC, Suliman wrote:
1. Do I need write "./public/" ? In examples often simply
"public/"
will work too. even "public"
it goes trough Path struct, see:
https://github.com/rejectedsoftware/vibe.d/blob/11578aa956a9b3b0e305d655f9668a867fdd89bd/source/vibe/inet/path.d
2. What incoming parameters ("HTTPServerRequest req,
HTTPServerResponse res") mean? Why I should to specify them?
HTTPServerRequest contains all data that the client sends,
e.g.
headers, cookies, source ip etc.
see:
https://github.com/rejectedsoftware/vibe.d/blob/11578aa956a9b3b0e305d655f9668a867fdd89bd/source/vibe/http/server.d#L584
HTTPServerResponse is the response you send back.
https://github.com/rejectedsoftware/vibe.d/blob/11578aa956a9b3b0e305d655f9668a867fdd89bd/source/vibe/http/server.d#L788
you woud want to set at least its body, as you do below
3. Why code with: "res.writeBody("Hello, World!",
"text/plain");"
and "router.get("*", serveStaticFiles("./public/"));" also
work, but
my variant (see code above) do not load say that page not
found?
what exactely does not work? please link code (ideally
https://gist.github.com/ )
4. How to specify page that I need to load, why in examples
there is
only link to folder like public? But what if I want to load
public/foo.html?
public servers public files, its more or less a static
webserver which
checks if a file exists and then serves that.
if you want to dynamically modify content you send you need
to use the
templating or do your own string magic.
generally it seems you do not fully understand the concept of
how
these web frameworks work. i think you should either read
vibe.d's
source code or more read how other such frameworks work e.g.
http://www.sinatrarb.com/documentation.html has pretty good
documentations and books that explain the inner workings (but
mind,
ruby is a dynamically typed language).
then i also can recommend that you check out vibe.d's github
repositories and read trough all the example projects that
come with
it. e.g.
https://github.com/rejectedsoftware/vibe.d/tree/11578aa956a9b3b0e305d655f9668a867fdd89bd/examples/app_skeleton
I'd say it is a bit hard to get into vibe.d just like that. I
had to
work out a lot of things myself simply because it's web server
technology cast in D. Most of the difficulties are not D but
understanding the whole web server thing. But I have to say
vibe.d is
very very good once you know your way around. Maybe we should
set up
some tutorials with common tasks so developers can concentrate
on D
instead of the web.
I was thinking maybe a vibe.d manual using leanpub's systems.
Assuming it was hosted on Github and set to be free. It would
work out rather well and because you can embed other files into
the book, examples can be made kinda like they are now in
vibe.d's repo runnable. But also contained in the manual
inline. All syntax highlighted and all.
Yeah, I think we need a dedicated page with tutorials (covering
most use cases) for vibe.d. It's great, I love it, but nobody
knows about it and it's hard to use. You have to go through all
the examples/source code to do simple things - and things keep
changing.
Maybe even powerful vibe.d boilerplate projects you can set up
with dub, e.g. a project that already contains `serveStaticFiles`
and stuff like that.
dub init myproject vibe.d --server=[minimal | query | noui]
Stuff like that. Maybe with DlangIDE support.
And stubs with explanations, e.g. "How do I handle queries?"
(req.query) etc. A one stop shop for vibe.d. I'd hate to see it
ignored only because it's not accessible. Maybe it's time to
bundle things up anyway. dub/dvm/dlangIDE/dlangUI/vibe.d. It's
right there in front of us and we all speak the same language :-)