/usr/lib/swipl/library/ext/http/http/http_server_files.pl
All Application Manual Name SummaryHelp

  • http
    • http
      • http_unix_daemon.pl
      • thread_httpd.pl
      • http_wrapper.pl
      • http_header.pl
      • http_stream.pl
      • http_exception.pl -- Map Prolog exceptions to HTTP errors
      • http_path.pl
      • http_dispatch.pl
      • http_host.pl
      • http_json.pl -- HTTP JSON Plugin module
      • http_client.pl -- HTTP client library
      • json.pl -- Reading and writing JSON serialization
      • http_open.pl -- HTTP client library
      • http_parameters.pl -- Extract parameters (GET and POST) from HTTP requests
      • http_multipart_plugin.pl -- Multipart form-data plugin
      • http_hook.pl -- HTTP library hooks
      • html_write.pl -- Write HTML text
      • html_quasiquotations.pl -- HTML quasi quotations
      • html_decl.pl -- HTML emitter analysis and IDE support
      • js_write.pl -- Utilities for including JavaScript
      • js_grammar.pl -- JavaScript grammar
      • http_server_files.pl -- Serve files needed by modules from the server
        • serve_files_in_directory/2
      • hub.pl -- Manage a hub for websockets
      • websocket.pl -- WebSocket support
      • http_session.pl -- HTTP Session management
      • http_cors.pl -- Enable CORS: Cross-Origin Resource Sharing
      • mimetype.pl -- Determine mime-type for a file
      • html_head.pl -- Automatic inclusion of CSS and scripts links
      • term_html.pl -- Represent Prolog terms as HTML
      • http_dyn_workers.pl -- Dynamically schedule HTTP workers.
      • http_server.pl -- HTTP server library
      • http_server_health.pl -- HTTP Server health statistics
      • http_log.pl -- HTTP Logging module
      • http_redis_plugin.pl -- Hook session management to use Redis
      • json_convert.pl -- Convert between JSON terms and Prolog application terms
 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 directory http/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.

See also
- http_reply_file/3