[email protected] writes:
> So far I have been able to serve text files and images, it should work
> with any mime-type now, but I have not test it yet.
>
> Here is the piece of code that handles files for the curious:
>
> (let ((file-path (public-file-path path)))
> (if (file-exists? file-path)
> (let* ((mime-type (mime-type-ref file-path))
> (mime-type-symbol (mime-type-symbol mime-type)))
> (if (text-mime-type? mime-type)
> (values
> `((content-type . (,mime-type-symbol)))
> (lambda (out-port)
> (call-with-input-file file-path
> (lambda (in-port)
> (display (read-delimited "" in-port)
> out-port)))))
> (values
> `((content-type . (,mime-type-symbol)))
> (call-with-input-file file-path
> (lambda (in-port)
> (get-bytevector-all in-port))))))
> (not-found request)))
>
> I hope it's readable :-)
Certainly, it looks good. Where does mime-type-ref come from, though?
Perhaps that could be wrapped up as `static-file-response' (or a better
name if you can think of one) and added to (web server).
Regards,
Neil