Flask에서 정적 파일을 제공하는 방법

| | | | | | | | | | | | | | | | | | | | |

그래서 부끄럽다. Flask에 함께 던진 응용 프로그램이 있습니다. 현재로서는 CSS 및 JS에 대한 일부 링크가 포함된 단일 정적 HTML 페이지를 제공하고 있습니다. 문서에서 찾을 수 없습니다. Flask는 정적 파일 반환을 설명합니다. 예, render_template을 사용할 수 있지만 데이터가 템플릿화되지 않는다는 것을 알고 있습니다. send_file 또는 url_for가 옳다고 생각했지만 작동하지 않았습니다. 그동안 파일을 열고 콘텐츠를 읽고, 적절한 mimetype으로 Response를 조작:

플라스크에서 os.path 가져오기 가져오기 Flask, 응답 앱 = Flask(__name__) app.config.from_object(__name__) def root_dir(): # pragma: 덮개 없음 반환 os.path.abspath(os.path.dirname(__file__)) def get_file(filename): # pragma: 덮개 없음 try: src = os.path.join(root_dir(), filename) # 플라스크가 정적 파일을 반환하는 방법 알아보기 # 시도: # - render_template # - send_file # IOError as exc: return str(exc) @app를 제외하고 이렇게 명확하지 않아야 합니다. return open(src).read(). route("/", methods=["GET"]) def metrics(): # pragma: 표지 콘텐츠 없음 = get_file("jenkins_analytics.html") return Response(content, mimetype="text/html") @app .route("/", defaults={"경로": ""}) @app.route("/<경로:경로>") def get_resource(경로): # pragma: 아니요 커버 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) 

누군가 코드 샘플이나 URL을 제공하고 싶습니까? 나는 이것이 아주 간단할 것이라는 것을 알고 있습니다.