31 lines
873 B
Python
31 lines
873 B
Python
#!/usr/bin/env python
|
|
|
|
# Inspired by https://gist.github.com/jtangelder/e445e9a7f5e31c220be6
|
|
# Python3 http.server for Single Page Application
|
|
|
|
import urllib.parse
|
|
import http.server
|
|
import socketserver
|
|
import re
|
|
from pathlib import Path
|
|
port = 83
|
|
HOST = ('', port)
|
|
pattern = re.compile('.png|.jpg|.jpeg|.js|.css|.ico|.gif|.svg|.ico', re.IGNORECASE)
|
|
|
|
|
|
class Handler(http.server.SimpleHTTPRequestHandler):
|
|
def do_GET(self):
|
|
url_parts = urllib.parse.urlparse(self.path)
|
|
request_file_path = Path(url_parts.path.strip("/"))
|
|
|
|
ext = request_file_path.suffix
|
|
if not request_file_path.is_file() and not pattern.match(ext):
|
|
self.path = 'index.html'
|
|
|
|
return http.server.SimpleHTTPRequestHandler.do_GET(self)
|
|
|
|
|
|
httpd = socketserver.TCPServer(HOST, Handler)
|
|
print(f"Starting Web App Server on pot: {port}")
|
|
httpd.serve_forever()
|