Single-page application server for end-to-end testing.
Sappy is a simple, single-page application (SPA) web server for end-to-end testing.
The Python standard library includes a web server that works great for serving up files:
$ python3 -m http.server 8080 Serving HTTP on 0.0.0.0 port 8080 ... $ curl http://localhost:1234/index.html <!DOCTYPE html> <html> <head> <title>Example Index</title> ...
But when used to serve up single-page applications, a 404 is returned whenever any page other than the index is accessed directly:
$ curl http://localhost:8080/login <!DOCTYPE html> <html lang=en> <title>Error 404 (Not Found)</title ...
This project builds on the existing web server code to forward all requests to the index. The single-page application’s client-side routing can then display the page that corresponds to that request’s URL.
Install sappy with pip:
$ pip install sappy
or directly from the source code:
$ git clone https://github.com/jacebrowning/sappy.git $ cd sappy $ python setup.py install
Build your static website (e.g. an Ember application) for production:
$ ember build --environment=production Building... Built project successfully. Stored in "dist/".
Then serve up the application:
$ sappy Serving /home/browning/project/dist/ on 8080
Check out the documentation or command-line help for additional options:
$ sappy --help
Added handling of HTML pages without the extension.
Fixed handling of relative paths in assets.
Initial stable release.
Added a --launch option to open the page’s index.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.