http_server_files.pl -- Serve files needed by modules from the server
This module provides an infrastructure for serving resource-files such
as icons, JavaScript, CSS files, etc. The default configuration serves
the HTTP locations icons
, css
and js
(see
http_absolute_location/3)
The location for these services can be changed by adding rules for http:location/3. Directories providing additional or alternative resources can be achieved by adding rules for file_search_path/2.
- serve_files_in_directory(+Alias, +Request)
- Serve files from the directory Alias from the path-info from
Request. This predicate is used together with
file_search_path/2. Note that multiple clauses for the same
file_search_path alias can be used to merge files from different
physical locations onto the same HTTP directory. Note that the
handler must be declared as
prefix
. Below is an example serving images from http://<host>/img/... from the directoryhttp/web/icons
.http:location(img, root(img), []). user:file_search_path(icons, library('http/web/icons')). :- http_handler(img(.), serve_files_in_directory(icons), [prefix]).
This predicate calls http_404/2 if the physical file cannot be located. If the requested path-name is unsafe (i.e., points outside the hierarchy defines by the file_search_path/2 declaration), this handlers returns a 403 Forbidden page.