Yani bu utanç verici. Birlikte attığım bir uygulama var Flaskve şimdilik sadece CSS ve JS'ye bazı bağlantılar içeren tek bir statik HTML sayfası sunuyor. Ve belgelerde Flaskstatik dosyaların geri döndüğünü açıkladığı yeri bulamıyorum . Evet, kullanabilirim render_templateama verilerin geçici olmadığını biliyorum. Düşünürdüm send_fileya url_forda doğru olanıydım, ama bunları çalıştıramadım. Bu arada, dosyaları açıyorum, içerik okuyorum ve Responseuygun bir mimetype ile arma :
import os.path
from flask import Flask, Response
app = Flask(__name__)
app.config.from_object(__name__)
def root_dir(): # pragma: no cover
return os.path.abspath(os.path.dirname(__file__))
def get_file(filename): # pragma: no cover
try:
src = os.path.join(root_dir(), filename)
# Figure out how flask returns static files
# Tried:
# - render_template
# - send_file
# This should not be so non-obvious
return open(src).read()
except IOError as exc:
return str(exc)
@app.route('/', methods=['GET'])
def metrics(): # pragma: no cover
content = get_file('jenkins_analytics.html')
return Response(content, mimetype="text/html")
@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def get_resource(path): # pragma: no cover
mimetypes = {
".css": "text/css",
".html": "text/html",
".js": "application/javascript",
}
complete_path = os.path.join(root_dir(), path)
ext = os.path.splitext(path)[1]
mimetype = mimetypes.get(ext, "text/html")
content = get_file(complete_path)
return Response(content, mimetype=mimetype)
if __name__ == '__main__': # pragma: no cover
app.run(port=80)
Birisi bunun için bir kod örneği veya URL vermek istiyor? Bunun ölü basit olacağını biliyorum.

