我有一个Python模块,它的蓝图是这样的。。。你知道吗
import os
from flask import Blueprint
LIBRARY_BASE_DIR = os.path.dirname(os.path.abspath(__file__))
TEMPLATE_BASE_DIR = os.path.join(LIBRARY_BASE_DIR, 'templates')
STATIC_BASE_DIR = os.path.join(LIBRARY_BASE_DIR, 'static')
BulmaBase = Blueprint(
'bulma',
__name__,
url_prefix='/bulma',
static_url_path='/bulma-static',
static_folder=STATIC_BASE_DIR,
template_folder=TEMPLATE_BASE_DIR,
)
注册到不同模块中的Flask应用程序routes.py
app = Flask(__name__)
app.register_blueprint(BulmaBase)
蓝图有一个基础模板,我想在多个应用程序中扩展。你知道吗
{% extends 'bases/bulma/bulma.html' %}
一个main.py
文件通过WSGI运行应用程序。googleappengineapp.yaml
文件没有列出入口点(因此应该使用默认值,主:应用程序). 你知道吗
application.run(host='127.0.0.1', debug=DEBUG)
在本地运行时,所有这些都能正常工作。但是,在googleappengine上运行时,无法找到蓝图中的模板。如果我禁用蓝图,应用程序会再次在GAE上运行。你知道吗
jinja2.exceptions.TemplateNotFound: bases/bulma/bulma.html
at _get_source_fast (/env/lib/python3.7/site-packages/flask/templating.py:86)
at get_source (/env/lib/python3.7/site-packages/flask/templating.py:58)
at load (/env/lib/python3.7/site-packages/jinja2/loaders.py:113)
at _load_template (/env/lib/python3.7/site-packages/jinja2/environment.py:804)
at get_template (/env/lib/python3.7/site-packages/jinja2/environment.py:830)
at root (/srv/auth_app/templates/BASE.html:11)
at root (/srv/auth_app/templates/login__firebase_ui.html:14)
at render (/env/lib/python3.7/site-packages/jinja2/environment.py:1005)
at top-level template code (/srv/auth_app/templates/login__firebase_ui.html:1)
at reraise (/env/lib/python3.7/site-packages/jinja2/_compat.py:37)
at handle_exception (/env/lib/python3.7/site-packages/jinja2/environment.py:780)
at render (/env/lib/python3.7/site-packages/jinja2/environment.py:1008)
at render (/env/lib/python3.7/site-packages/jinja2/asyncsupport.py:76)
at _render (/env/lib/python3.7/site-packages/flask/templating.py:117)
at render_template (/env/lib/python3.7/site-packages/flask/templating.py:135)
at login (/srv/auth_app/routes.py:64)
at dispatch_request (/env/lib/python3.7/site-packages/flask/app.py:1799)
at full_dispatch_request (/env/lib/python3.7/site-packages/flask/app.py:1813)
at reraise (/env/lib/python3.7/site-packages/flask/_compat.py:35)
at handle_user_exception (/env/lib/python3.7/site-packages/flask/app.py:1718)
at full_dispatch_request (/env/lib/python3.7/site-packages/flask/app.py:1815)
at wsgi_app (
我不知道如何解决这个问题。最后,我只希望有一个共享的可扩展模板(带有捆绑资产),多个其他人可以在自己的应用程序中进行扩展。任何指点都将不胜感激。你知道吗
在将googleappengine服务从标准环境升级到灵活环境之后,这不再是一个问题。你知道吗
从docs-
Apps in the flexible environment can serve static files from a Google Cloud Platform option like Cloud Storage, serve them directly, or use a third-party content delivery network (CDN).
失败的地方在于标准环境不允许从外部库访问/写入非运行时文件;除非在
app.yaml
中指定了特定的静态文件夹,否则只能使用tmp
文件夹。如果应用程序试图使用外部库中的任何模板,则这会显示为在文件系统中查找模板时出错。你知道吗简言之,如果您有外部库,并且希望在生产中使用来自它们的模板/静态文件(例如使用Flask
Blueprint
),那么GAE标准环境将无法正常工作。你知道吗相关问题 更多 >
编程相关推荐