django中的CK编辑器无法在生产环境中工作

lo8azlld  于 12个月前  发布在  Go
关注(0)|答案(3)|浏览(129)

CK编辑器在开发中工作正常,但在生产中不工作。
在控制台选项卡中,它显示错误:Failed to load resource: the server responded with a status of 404 (Not Found) ckeditor.js

k10s72fa

k10s72fa1#

我也遇到过类似的问题。在localhost中一切都运行良好,但在我将代码部署到实时服务器后,django-ckeditor无法工作。当我检查控制台时,django-ckeditor被配置为检查/static/ckeditor/ckeditor/ckeditor. js。但是在配置ckeditor并第一次运行python manage.py collectstatic之后,ckeditor被配置为将静态文件复制到STATIC_ROOT所指定的位置,下面是我的静态文件设置,我相信几乎每个人都是这样做的:

STATIC_URL = 'static/'
STATICFILES_DIRS = [
    BASE_DIR / 'static'
]
STATIC_ROOT = BASE_DIR / 'staticfiles'

从上面的设置来看,这里有一个冲突。ckedtor静态文件将被复制到/staticfiles/ckeditor/ckeditor/ckeditor. js,但Django将查看/static/ckeditor/ckeditor/ckeditor. js。
我做的一个简单的破解就是把所有的ckeditor文件复制到静态文件夹中,提交修改,然后把修改拉到我的服务器上,一切都开始正常工作了。
如果你还没有使用白噪声,你就不需要白噪声来使它工作。

nzrxty8p

nzrxty8p2#

发生这种情况是因为您的静态文件被错误处理或未进行部署处理。
确保您的setting.py看起来像这样:

STATICFILES_DIRS = [os.path.join(BASE_DIR, 'YOUR STATIC FILE FOLDERS')]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

如果你在Nginx or apache2 please make sure you configured the .conf文件上正确运行你的应用程序来服务静态文件。 此外,还有一个简单明了的解决方案,即whitenoise。 如果你不想用Nginx或类似的服务器来服务你的静态文件。 你可以试试whitenoise`
要使用whitenoise,请先安装它,然后像这样更新您的settings.py文件:

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

并在中间件中将其添加到会话中间件之前

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'whitenoise.middleware.WhiteNoiseMiddleware', # Serve static in production without nginx or apache
    'django.contrib.sessions.middleware.SessionMiddleware',
    ........
]

希望解决方案能解决您的ckeditor问题
在这里你去白噪声文档:http://whitenoise.evans.io/en/stable/

h79rfbju

h79rfbju3#

collectstatic为我工作。

#command to collect static files
python3 manage.py collectstatic

相关问题