我正在尝试在我的flask项目中使用flask_ckeditor。我按照文档进行操作,但不断收到此错误: 未捕获的引用错误:CKEDITOR 未定义(在浏览器控制台中)。
这是我的表格:
class AdminUserCreateCKForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
email = EmailField('Email', validators=[DataRequired()])
pwdhash = PasswordField('Password', validators=[DataRequired()])
admin = BooleanField('Admin')
content = CKEditorField('Content')
submit = SubmitField('Submit')
我的模板:
{% extends "base.html" %}
{% block content %}
<div style="padding-top: 50px; padding-right: 50px;">
<form action="{{ url_for('auth.admin.user_create_ck') }}" method="post">
{{ form.csrf_token }}
{{ render_field(form.username) }}
{{ render_field(form.email) }}
{{ render_field(form.pwdhash) }}
{{ render_field(form.admin) }}
{{ form.content() }}
{{ render_field(form.submit) }}
</form>
{{ ckeditor.load(custom_url=url_for('static', filename='ckeditor/ckeditor.js')) }}
{{ ckeditor.config(name='content') }}
</div>
{% endblock %}
尝试从本地提供 ckeditor.js,所以这是我的应用程序工厂:
# ...some stuff
ckeditor = CKEditor()
def create_app(config_class=Config):
app = Flask(__name__, static_url_path='/static')
app.config.from_object(config_class)
app.config['CKEDITOR_SERVE_LOCAL'] = True
# the rest of the stuff...
表单中的所有其他字段都可以毫无问题地呈现。但对于“内容”我只得到一个简单的文本区域。 尝试使用 script 标签在我的 base.html 中加载 ckeditor 。不工作。 (引导程序加载正常。所以我认为我的静态文件夹已正确访问。)
我能够通过用整个版本 4(即用型)标准包替换 ckeditor.js 文件来解决该问题。 注意:LTS 不起作用。