django-tinymce编辑器中的弹出窗口显示404错误

时间:2013-09-05 09:04:09

标签: python django popup http-status-code-404 django-tinymce

出了什么问题:

我安装了django-tinymce来处理我网站管理部分的文本字段。编辑器运行良好,虽然不如预期,因为每当我尝试插入图像,链接,符号等时 - 也就是说,每当弹出窗口时 - 编辑器打开404 Not found窗口而不是实际窗口小部件窗体。< / p>

我尝试过:

我尝试过添加

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)。现在一切正常。

1 个答案:

答案 0 :(得分:0)

它在开发服务器下工作,但不是直播,这让我觉得你还没有在你的apache conf中正确设置媒体根目录。开发服务器自动为您的媒体和静态文件提供服务,但对于实时部署,您需要使用相关路径添加媒体和静态别名。

vhost.conf:

<VirtualHost *:80>
    # Your setup for your main site url, then add the below to allow access
    # to the media and static roots

    Alias /media/ "/path/to/myproject/media/"
    <Directory "/path/to/myproject/media/">
        Order deny,allow
        Allow from all
    </Directory>

    Alias /static/ "/path/to/myproject/static/"
    <Directory "/path/to/myproject/static/">
        Order deny,allow
        Allow from all
    </Directory>
</VirtualHost>