【问题标题】:Django-tinymce not loading javascriptDjango-tinymce 不加载 javascript
【发布时间】:2016-08-31 21:11:53
【问题描述】:

我已经(试图)在我的 Django 项目中设置了 django-tinymce。但是,在检查器中,我没有看到正在加载 tinymce.min.js。

这是在我的设置中:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
os.environ['DJANGO_LIVE_TEST_SERVER_ADDRESS'] = 'localhost:8123'

# TinyMCE configuration
TINYMCE_JS_ROOT = os.path.join(STATIC_ROOT, "articles/build/lib/node_modules/tinymce")
TINYMCE_JS_URL = os.path.join(TINYMCE_JS_ROOT, "tinymce.min.js")
TINYMCE_COMPRESSOR = False
TINYMCE_DEFAULT_CONFIG = {
    'theme': "modern",
    'toolbar': "undo redo | bold italic | bullist numlist | blockquote | removeformat",
    'menubar': False,
    'statusbar': False,
    'schema': "html5",
    'max_height': 500,
    'max_width': 500,
    'min_height': 100,
    'min_width': 400
}

删除TINYMCE_DEFAULT_CONFIG 并将tinymce.min.js 更改为tinymce.js 并没有改变任何东西——仍然没有加载tinymce js。

这是我的文件结构:

static
  |-src
  |  |-styles
  |  |-scripts
  |  |-images
  |-build
  |  |-css
  |  |-js
  |  |-img
  |  |-lib
  |  |  |-package.json
  |  |  |-node_modules
  |  |  |  |-tinymce
  |  |  |  |  |-tinymce.js
  |  |  |  |  |-more_tinymce_files_here
  |-node_modules
  |-gulpfile.js
  |-package.json

在我的模板中我确实有{{ form.media }},但也许这就是问题所在。

full code with templates, settings, urls, etc. is available here

如何确保 tinymce javascript 加载?或者:我该如何调试?

【问题讨论】:

    标签: javascript django tinymce tinymce-4 django-tinymce


    【解决方案1】:

    事实证明,错误出现在 settings.py 中。 tinymce 位置需要这样设置:

    TINYMCE_JS_ROOT = "articles/build/lib/node_modules/tinymce"
    TINYMCE_JS_URL = os.path.join(TINYMCE_JS_ROOT, "tinymce.js")
    

    【讨论】:

      【解决方案2】:

      来自 django-tinymce 文档:

      在您自己的包含 TinyMCE 小部件的模板中,您必须将以下内容添加到 HTML HEAD 部分(假设您将表单命名为“form”):

      <head>
      ...
      {{ form.media }}
      </head>
      

      试试{{ articleform.media }}

      【讨论】:

      • 很遗憾这不起作用。不过,{{ form }} 实际上是在我的模板中引用表单的正确方法。例如,请参阅this
      【解决方案3】:

      jQuery 可用吗?我添加了将您的 ArticleSubmitView 添加到我的工作 tinymce 项目中,没有您的 tinymce 配置,并且我收到了一个错误,即未定义 jQuery。当我在 base.html 中的 {% block extra_head_stuff %} 标记上方添加 jQuery 脚本标记时,tinymce 编辑器出现了。

      请注意,这是使用以下默认设置:

      TINYMCE_SPELLCHECKER = False
      TINYMCE_COMPRESSOR = True
      TINYMCE_DEFAULT_CONFIG = {
          'theme': "advanced",
          'theme_advanced_buttons3_add': "|,spellchecker",
      }
      

      使用您的设置,我收到一个错误,提示找不到 tinymce.min.js(尽管这可能是由于我没有复制您的静态设置)。

      【讨论】:

        猜你喜欢
        • 2021-08-25
        • 2011-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多