summaryrefslogtreecommitdiff
path: root/megapixels/app/server
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2019-02-28 16:29:11 +0100
committerJules Laplace <julescarbon@gmail.com>2019-02-28 16:29:11 +0100
commite5d15ae16c31c710fa3038845406735937e371af (patch)
treebf8fcdade33190dc46ee369f19486ac1c438abb1 /megapixels/app/server
parentd5cc74fd0805f67237a1065cd667e05f6b3616d9 (diff)
serve index.html using test server correctly
Diffstat (limited to 'megapixels/app/server')
-rw-r--r--megapixels/app/server/create.py30
1 files changed, 10 insertions, 20 deletions
diff --git a/megapixels/app/server/create.py b/megapixels/app/server/create.py
index a1ce56df..b6ca7ba3 100644
--- a/megapixels/app/server/create.py
+++ b/megapixels/app/server/create.py
@@ -1,3 +1,4 @@
+import os
import logging
import logging.handlers
@@ -13,7 +14,7 @@ logging.getLogger().addHandler(logging.StreamHandler())
logging.debug("starting app")
-from flask import Flask, Blueprint, jsonify, send_from_directory
+from flask import Flask, Blueprint, jsonify, send_from_directory, request
from flask_sqlalchemy import SQLAlchemy
from app.models.sql_factory import connection_url, load_sql_datasets
@@ -38,7 +39,14 @@ def create_app(script_info=None):
app.register_blueprint(api, url_prefix='/api')
app.register_blueprint(api_task, url_prefix='/task')
- app.add_url_rule('/<path:file_relative_path_to_root>', 'serve_page', serve_page, methods=['GET'])
+
+ @app.errorhandler(404)
+ def page_not_found(e):
+ path = os.path.join(os.path.dirname(__file__), './static', request.path[1:], 'index.html')
+ if os.path.exists(path):
+ with open(path, "r") as f:
+ return f.read(), 200
+ return "404!!!!!!!!!!!!1", 404
@app.route('/', methods=['GET'])
def index():
@@ -48,22 +56,4 @@ def create_app(script_info=None):
def shell_context():
return { 'app': app, 'db': db }
- @app.route("/site-map")
- def site_map():
- links = []
- for rule in app.url_map.iter_rules():
- # url = url_for(rule.endpoint, **(rule.defaults or {}))
- # print(url)
- links.append((rule.endpoint))
- return(jsonify(links))
-
return app
-
-def serve_page(file_relative_path_to_root):
- """
- trying to get this to serve /path/ with /path/index.html,
- ...but it doesnt actually matter for production...
- """
- if file_relative_path_to_root[-1] == '/':
- file_relative_path_to_root += 'index.html'
- return send_from_directory("static", file_relative_path_to_root)