【问题标题】:Django gets tinymce by two different pathsDjango 通过两条不同的路径获取 tinymce
【发布时间】:2012-08-15 01:27:14
【问题描述】:

当我转到主站点页面时,对 tinymce 的请求是:

"GET /media/js/tiny_mce/textareas.js HTTP/1.1" 200 2007
"GET /media/js/tiny_mce/tiny_mce.js HTTP/1.1" 200 207773

因为我将 MEDIA_URL 用于 tinymce 的东西。但是当我去 /admin 页面请求是:

"GET /static/js/tiny_mce/tiny_mce.js HTTP/1.1" 304 0
"GET /static/js/tiny_mce/textareas.js HTTP/1.1" 200 2007

为什么?在哪里纠正这个问题?

【问题讨论】:

    标签: django tinymce


    【解决方案1】:

    \venv\Lib\site-packages\tinymce\settings.py 的片段:

    if 'staticfiles' in settings.INSTALLED_APPS or 'django.contrib.staticfiles' in settings.INSTALLED_APPS:
        JS_URL = getattr(settings, 'TINYMCE_JS_URL',os.path.join(settings.STATIC_URL, 'tiny_mce/tiny_mce.js'))
        JS_ROOT = getattr(settings, 'TINYMCE_JS_ROOT',os.path.join(settings.STATIC_ROOT, 'tiny_mce'))
    else:
        JS_URL = getattr(settings, 'TINYMCE_JS_URL','%sjs/tiny_mce/tiny_mce.js' % settings.MEDIA_URL)
        JS_ROOT = getattr(settings, 'TINYMCE_JS_ROOT', os.path.join(settings.MEDIA_ROOT, 'js/tiny_mce'))
    

    AFAIR 'django.contrib.staticfiles' 默认包含在 INSTALLED_APPS 中。因此 tinymce 应该位于静态目录中。关于将tinymce放入媒体目录的说明误导了我。

    【讨论】:

      【解决方案2】:

      django use the static files app to handle admin media(即/static/...)的较新版本(1.4):

      从 Django 1.4 开始,管理员的静态文件也遵循此约定[使用静态文件],以使文件更易于部署。在以前的 Django 版本中,定义 ADMIN_MEDIA_PREFIX 设置以指向管理员的静态文件在 Web 服务器上的 URL 也是很常见的。此设置现已弃用并由更通用的设置 STATIC_URL 取代。

      所以,如果你是 ADMIN_MEDIA_PREFIX 来更改管理员使用的路径(检查this 问题以确保你了解它是如何工作的)。否则,将您的应用调整为make use of static files

      【讨论】:

      • 在所有文件中搜索“STATIC_URL”并找到了自己的答案。
      • 啊,我不认为这取决于微型 mce 实现 - 不要忘记接受你自己的答案
      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多