pylixm / django-mdeditor

Django-mdeditor is Markdown Editor plugin application for django base on Editor.md.
https://pypi.org/project/django-mdeditor/
GNU General Public License v3.0
481 stars 103 forks source link

centos服务器端 django2.0.3无法使用mdeditor的静态文件 #35

Closed StrayCamel247 closed 5 years ago

StrayCamel247 commented 5 years ago

centos端代码:

虚拟环境包的位置: ./envblog/lib/python3.6/site-packages (0.1.13) urls `

from django.conf.urls import include
from django.conf.urls import url
from django.conf import settings
from django.conf.urls.static import static
from django.views.static import serve

urlpatterns = [
    ...
    path('mdeditor/', include('mdeditor.urls')),  # Django-mdeditor URLS
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
else:
    urlpatterns += [
        url(r'^static/(?P<path>.*)$', serve,
            {'document_root': settings.STATIC_ROOT, 'show_indexes': settings.DEBUG})
    ]`

model:

class Article(models.Model):
    STATUS_CHOICES = (
        ('d', '草稿'),
        ('p', '发表'),
    )
    title = models.CharField(verbose_name='标题', max_length=100)
    #content = models.TextField(verbose_name='正文', blank=True, null=True)
    #添加MDTextField文本编辑功能
    content = MDTextField()

admin无法显示mdeditor编辑功能: default 错误为静态文件无法获取: default

StrayCamel247 commented 5 years ago

同样的 项目1. win10本地django2.0.3可实现

pylixm commented 5 years ago

settings.STATIC_ROOT 这个配置是什么?

StrayCamel247 commented 5 years ago

那个是我以前调试设置的,settings.STATIC_ROOT这个变量现在没有定义

StrayCamel247 commented 5 years ago

url文件

。。。
urlpatterns = [
    ...
    path('mdeditor/', include('mdeditor.urls')),  # Django-mdeditor URLS
]

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我把else那行删除了 本地运行的话正常是会访问mdeditor静态文件的 default 但是服务器都没有去访问文件: default 用的nohup ./gunicorn启动,,

jin544642965 commented 5 years ago

1

jin544642965 commented 5 years ago

貌似找到了答案,还要把静态文件copy到static才行 @jin544642965

StrayCamel247 commented 5 years ago

对,我发现了。还可以,在setting里设置新的url静态文件路径指向这个安装的包的地方 前端cssjs也是用的这个mdeditor的静态文件也可以我下了个mk包,然后搭配你的静态文件也实现了

StrayCamel247 commented 5 years ago

你看能不能这个函数让前端则可以实现md转化功能。,我看你future里面有

pylixm commented 5 years ago

@jin544642965 @Freen247
Debug 模式下,django 静态文件寻址有2种方式: 1、每个app 下 的static 静态文件 2、配置在 STATICFILES_DIRS 中的路径

是这2个finder 控制的:

# https://docs.djangoproject.com/en/2.1/howto/static-files/
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

非Debug模式下,生产环境常用的做法是将静态文件通过python manage.py collectstatic收集起来,做统一管理,如用nginx 做静态服务、对象存储服务等。可参考我的另一个项目的配置: https://github.com/pylixm/liBlog/blob/master/config/nginx.conf

@Freen247 前端实现md渲染功能,可能需要些时间,因为我不是专业的前端开发。如果你有兴趣,也欢迎提交PR。

jin544642965 commented 5 years ago

引用 {{form.media}} {{form.as_p}} 貌似会和前端js有冲突。引用markdown编辑器后直接导致我左侧边的栏目没了

image

image

jin544642965 commented 5 years ago

发现mdeditor会引入jquery文件,前面页面也引入了jquery并且版本不一样冲突了,怎么办

StrayCamel247 commented 5 years ago

設置STATIC_ROOT = os.path.join(BASE_DIR, 'static/') 再python manage.py collectstatic 和手動copy都可以解決

StrayCamel247 commented 5 years ago

前端渲染的功能可以实现,我发现你是用的editor.md包,然后调用js就可以了。 之前我用的python的markdown包,感觉不是特别好用吧(我还不会写extension),如果知道如何加扩展的话就用markdown包。 http://boywithacoin.cn/articles/21/ 用js渲染前端的功能在这个博客中,有错误请emailme一下,谢谢