我正在修改一个cookiecutter烧瓶应用程序。我正在尝试将日期选择器添加到页面。我找到了https://eonasdan.github.io/bootstrap-datetimepicker/。这个厨师使用烧瓶资产来管理项目资产。在
在https://adambard.com/blog/fresh-flask-setup/之后,我修改了我的资产.py文件:
from flask_assets import Bundle, Environment
import os
css = Bundle(
"libs/bootstrap/dist/css/spacelab/bootstrap.css",
"bower_components/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css",
"css/style.css",
"css/home.css",
# "css/style.css",
filters="cssmin",
output="public/css/common.css"
)
js = Bundle(
"libs/jQuery/dist/jquery.js",
"libs/bootstrap/dist/js/bootstrap.js",
"bower_components/moment/moment.js",
"bower_components/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js",
"js/plugins.js",
filters='jsmin',
output="public/js/common.js"
)
# Tell flask-assets where to look for our coffeescript and sass files.
assets = Environment()
assets.load_path = [os.path.join(os.path.dirname(__file__), 'myflaskapp/static/bower_components')]
assets.register("js_all", js)
assets.register("css_all", css)
当我这样做时,我得到:
^{pr2}$我做错什么了?在
编辑:应用程序副本初始化资产:
from flask import Flask, render_template
from myflaskapp.assets import assets
:param config_object: The configuration object to use.
"""
app = Flask(__name__)
app.config.from_object(config_object)
register_extensions(app)
register_blueprints(app)
register_errorhandlers(app)
return app
def register_extensions(app):
assets.init_app(app)
def register_blueprints(app):
app.register_blueprint(public.blueprint)
app.register_blueprint(user.blueprint)
正如我在评论中指出的,你必须要有一个Flask应用程序绑定到对象,正如它在回溯中所指出的那样:
这将解决您的问题,无论它是否与您的用例相关…:
^{pr2}$或者你可以重新编写你的create应用程序
错误的全部原因是调用
load_path
。这将尝试在webassets中设置属性,您可以在这里看到:https://github.com/miracle2k/webassets/blob/95dff0ad6dcc25b81790a1585c67f5393e7d32af/src/webassets/env.py#L656反过来,这会激活flask asset对象上的存储属性,这会导致它尝试这样做:https://github.com/miracle2k/flask-assets/blob/eb7f1905410828689086b80eb19be9331041ac52/src/flask_assets.py#L102
如您所见,它需要访问一个应用程序,而当您使用
load_path
时,它将向您投诉,因为它在回溯中解释得非常好。我在烧瓶资产页面上找到了一个关于这个的讨论:https://github.com/miracle2k/flask-assets/issues/35您可能会非常正确地认为,正如您所说的
init_app()
一切都应该是好的,但事实并非如此,init_app()
没有给Environment
任何引用:https://github.com/miracle2k/flask-assets/blob/eb7f1905410828689086b80eb19be9331041ac52/src/flask_assets.py#L338我根本不使用flask资产,所以我不太确定他们为什么没有用
Environment().init_app
引用app
,所以如果有人知道,就大声说出来。在相关问题 更多 >
编程相关推荐