Although the SWI-Prolog Web Server is intended to serve documents
that are computed dynamically, serving plain files is sometimes
necessary. This small module combines the functionality of http_reply_file/3
to act as a simple web-server. Such a server can be created using the
following code sample, which starts a server at port 8080 that serves
files from the current directory ('.'). Note that the handler needs a
option to specify that it must handle all paths that begin with the
registed location of the handler.
:- use_module(library(http/thread_httpd)). :- use_module(library(http/http_dispatch)). :- http_handler(root(.), http_reply_from_files('.', ), [prefix]). :- initialization http_server(http_dispatch, [port(8080)]).
indexesto locate an index file (see below) or uses http_reply_dirindex/3 to create a listing of the directory.
Note that this handler must be tagged as a
http_handler/3 and module
introduction). This also implies that it is possible to override more
specific locations in the hierarchy using http_handler/3
with a longer path-specifier.
|Dir||is either a directory or an path-specification as used by absolute_file_name/3. This option provides great flexibility in (re-)locating the physical files and allows merging the files of multiple physical locations into one web-hierarchy by using multiple user:file_search_path/2 clauses that define the same alias.|
Content-typefrom the file name.