1

当我转到主站点页面时,对 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

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

4

2 回答 2

2

\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放入媒体目录的说明误导了我。

于 2012-08-15T02:24:05.650 回答
0

django 的较新版本(1.4)使用静态文件应用程序来处理管理媒体(即/static/...):

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

所以,如果你是 < 1.4,你可以使用ADMIN_MEDIA_PREFIX来更改管理员使用的路径(检查这个问题以确保你看到它是如何工作的)。否则,调整您的应用程序以使用静态文件

于 2012-08-15T02:18:01.477 回答