Re: Vibe.d help

2016-09-26 Thread Martin Tschierschke via Digitalmars-d-learn
On Friday, 23 September 2016 at 21:32:59 UTC, Gestalt Theory 
wrote:
On Thursday, 22 September 2016 at 09:14:46 UTC, Martin 
Tschierschke wrote:
On Thursday, 22 September 2016 at 01:38:12 UTC, Gestalt Theory 
wrote:



3. How to serve static files properly?



sendFile(req, res, Path(req.path));

Does the trick inside the handler.


@5. There is a solution, hopefully I can find the link and 
post it later.


Any news on this?

Sorry, I have problems to find the right link:

It is mentioned here: http://vibed.org/features

-> Integrated load balancing (bottom of page)

And here you find the part for template caching, an option with 
in the new template engine:

->Experimental HTML template caching
https://github.com/rejectedsoftware/diet-ng

But the best place to ask would be in the vibe.d forum, where 
Sönke is able and willing to help!

http://vibed.org/ -> http://forum.rejectedsoftware.com/

Regards mt.






Re: Vibe.d help

2016-09-23 Thread Gestalt Theory via Digitalmars-d-learn
On Thursday, 22 September 2016 at 09:14:46 UTC, Martin 
Tschierschke wrote:
On Thursday, 22 September 2016 at 01:38:12 UTC, Gestalt Theory 
wrote:



3. How to serve static files properly?



sendFile(req, res, Path(req.path));

Does the trick inside the handler.


@5. There is a solution, hopefully I can find the link and post 
it later.


Any news on this?



Re: Vibe.d help

2016-09-22 Thread Gestalt Theory via Digitalmars-d-learn

Just to point 3. I hope I can give a hint, the problem is, that
the match is not the * but /images/*, so
router.get("/images/*", serveStaticFiles("images/"))

will look in PROJECTHOME/images/images/ for the file.

For my .css files located in

PROJECTHOME/public/styles/

I used:
router.get("/styles/*", serveStaticFiles("public/"))

if you put your images in
PROJECTHOME/public/images

router.get("/images/*", serveStaticFiles("public/"));
should work.


I ignorantly forgot to put the proper image in the image dir ;/ 
But it would return the default page rather than error so I 
thought the route was wrong.


e.g., I browsed to /images/image.jpg and I got the default page. 
I'd rather it error out(error page).


Also, I probably would still like to know how to serve the files 
statically from a handler. Could I have two routes, one that does 
it statically and the other with handler, for the same content?


Also, my route is

router.get("/images/*", serveStaticFiles("/"));

Does this not open up the base dir for possible attacks? Seems 
like


router.get("*", serveStaticFiles("/images"));

would be better, although this won't work because it will match 
anything.


Seems kinda bizarre how it works. If I serve the files in a 
handler maybe I could have more control?


I guess I could look at the source for serveStaticFiles... seems 
there is some functions that are used like sendFile that should 
work.



@5. There is a solution, hopefully I can find the link and post 
it later.



Cool, that will help speed things up.



Re: Vibe.d help

2016-09-22 Thread Martin Tschierschke via Digitalmars-d-learn
On Thursday, 22 September 2016 at 01:38:12 UTC, Gestalt Theory 
wrote:
1. I get this error when trying to run a project in VS. dub 
doesn't give the error.


First-chance exception: core.exception.AssertError free() 
called with null array. at 
vibe-d-0.7.26\source\vibe\utils\memory.d(110)


It constantly pops up then I get an access violation and crash.


2. Many vibe.d HTTP Server options seem not to be implemented. 
Is this still the case? e.g., 
http://vibed.org/api/vibe.http.server/HTTPServerSettings.maxRequestTime


3. How to serve static files properly?

void images(HTTPServerRequest req, HTTPServerResponse res)
{
writeln("images Request");
write("Path = "); writeln(req.fullURL);
// Somehow reship request out
}

...

router.get("/images/*", );


I would like to be able to serve them but also log or redirect 
if possible. The messages are written. I tried to also serve 
directly and it didn't work, which is why I used a handler in 
the first place.


router.get("/images/*", serveStaticFiles("images/"));

I imagine the path is not correct. I am on windows and created 
an images sub dir in the projects(same depth as views, etc) but 
the images were not served. I didn't want to hard code this 
path, maybe it should be?

[...]
5. Many other frameworks seem to support "hot swapping" of 
files while the sever is running rather than having to 
recompile. Recompiling the diet templates/project is slow and 
requires restarting the server and all that. Is there any way 
to get vibe.d to automatically monitor the projects folder or 
templates for changes and then somehow recompile and update/etc?


Thanks.


Just to point 3. I hope I can give a hint, the problem is, that
the match is not the * but /images/*, so
router.get("/images/*", serveStaticFiles("images/"))

will look in PROJECTHOME/images/images/ for the file.

For my .css files located in

PROJECTHOME/public/styles/

I used:
router.get("/styles/*", serveStaticFiles("public/"))

if you put your images in
PROJECTHOME/public/images

router.get("/images/*", serveStaticFiles("public/"));
should work.

@5. There is a solution, hopefully I can find the link and post 
it later.




Vibe.d help

2016-09-21 Thread Gestalt Theory via Digitalmars-d-learn
1. I get this error when trying to run a project in VS. dub 
doesn't give the error.


First-chance exception: core.exception.AssertError free() called 
with null array. at vibe-d-0.7.26\source\vibe\utils\memory.d(110)


It constantly pops up then I get an access violation and crash.


2. Many vibe.d HTTP Server options seem not to be implemented. Is 
this still the case? e.g., 
http://vibed.org/api/vibe.http.server/HTTPServerSettings.maxRequestTime


3. How to serve static files properly?

void images(HTTPServerRequest req, HTTPServerResponse res)
{
writeln("images Request");
write("Path = "); writeln(req.fullURL);
// Somehow reship request out
}

...

router.get("/images/*", );


I would like to be able to serve them but also log or redirect if 
possible. The messages are written. I tried to also serve 
directly and it didn't work, which is why I used a handler in the 
first place.


router.get("/images/*", serveStaticFiles("images/"));

I imagine the path is not correct. I am on windows and created an 
images sub dir in the projects(same depth as views, etc) but the 
images were not served. I didn't want to hard code this path, 
maybe it should be?



4. How to setup load balancing and virtual hosts? I know one can 
use a front end to do this but I saw a vibedist project that 
seems to be dead. Obviously one can make multiple HTTPServers, 
but this might get a bit messy.


What I want to eventually do is server multiple secure virtual 
domains with http's being redirected to https. I'd like to 
probably use one vibe.d instance unless there is good reason not 
to. The sites, at this point, won't have many req/sec. Maybe 
eventually I'll need to separate in to multiple processes.



5. Many other frameworks seem to support "hot swapping" of files 
while the sever is running rather than having to recompile. 
Recompiling the diet templates/project is slow and requires 
restarting the server and all that. Is there any way to get 
vibe.d to automatically monitor the projects folder or templates 
for changes and then somehow recompile and update/etc?


Thanks.