怎么了:
我已经安装了 django-tinymce 来处理我网站管理部分中的文本字段。编辑器运行良好,尽管不如预期,因为每当我尝试插入图像、链接、符号等时 - 即,每当出现弹出窗口时 - 编辑器都会打开一个 404 Not found 窗口而不是实际的小部件表单。
我试过的:
我试过添加
document.domain = 'my_site.com';
到tiny_mce_popup.js。没有改变。
有趣的是,应该在弹出窗口中打开的 *.htm 文件存储在目录 {{ MEDIA_URL }}js/tiny_mce/themes/advanced/ 中(正如我所提到的,服务器没有打开他们)。但是,如果我尝试在浏览器中打开同一目录中的其他文件(例如 {{ MEDIA_URL }}js/tiny_mce/themes/advanced/editor_template.js 或 {{ MEDIA_URL }}js/tiny_mce/themes/advanced/img/flash .gif),一切正常 - 文件显示没有任何错误。
此外,在本地服务器上一切正常 - 只有在部署后才会遇到问题。
可能有助于识别问题的代码:
项目的urls.py:
urlpatterns = patterns('',
#...
url(r'^tinymce/', include('tinymce.urls')),
#...
)
TinyMCE 的urls.py:
from django.conf.urls.defaults import *
urlpatterns = patterns('tinymce.views',
url(r'^js/textareas/(?P<name>.+)/$', 'textareas_js', name='tinymce-js'),
url(r'^js/textareas/(?P<name>.+)/(?P<lang>.*)$', 'textareas_js', name='tinymce-js-lang'),
url(r'^spellchecker/$', 'spell_check'),
url(r'^flatpages_link_list/$', 'flatpages_link_list'),
url(r'^compressor/$', 'compressor', name='tinymce-compressor'),
url(r'^filebrowser/$', 'filebrowser', name='tinymce-filebrowser'),
url(r'^preview/(?P<name>.+)/$', 'preview', name='tinymce-preview'),
)
TinyMCE 的settings.py:
import os
from django.conf import settings
DEFAULT_CONFIG = getattr(settings, 'TINYMCE_DEFAULT_CONFIG',
{'theme': "advanced", 'relative_urls': False})
USE_SPELLCHECKER = getattr(settings, 'TINYMCE_SPELLCHECKER', False)
USE_COMPRESSOR = getattr(settings, 'TINYMCE_COMPRESSOR', False)
USE_FILEBROWSER = getattr(settings, 'TINYMCE_FILEBROWSER',
'filebrowser' in settings.INSTALLED_APPS)
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'))
JS_BASE_URL = JS_URL[:JS_URL.rfind('/')]
那么如何让 django-tinymce 的弹出窗口工作呢?在此先感谢您的帮助!
编辑:找到解决方案。原来我的托管服务提供商没有在允许的静态文件扩展名列表中包含htm(l) 。现在一切正常。