• Windows下Apache+Django+mod_wsgi的static和media问题处理


    配置好了Apache可以访问Django工程了(参见前篇:Windows编译安装mod_wsgi,配合使用Django+Apahce)

    但是Django中的static、media等文件Apache是无法直接找到的

    现在来配置,使得他们的static和media根目录保持一致


    1 配置Apache的 httpd.conf

    Alias /static/ "D:/WebRoot/DjangoProject/mysite/static/"      前者为客户端(浏览器)的URL地址,映射到后者为服务器(电脑)文件存放目录
    
    <Directory "D:/WebRoot/DjangoProject/mysite/static/">         设置访问权限
        Require  all  granted
    </Directory>
    
    Alias /media/ "D:/WebRoot/DjangoProject/mysite/media/"      同上
    
    <Directory "D:/WebRoot/DjangoProject/mysite/media/">         
        Require  all  granted
    </Directory>

    2 配置Django的 mysite/settings.pymysite/urls.py

    settings.py

    STATIC_URL = '/static/' 和Apache一样,_URL为浏览器访问地址, _ROOT为服务及文件存放目录 STATIC_ROOT = os.path.join(BASE_DIR, 'static') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    urls.py
    ...
    from django.conf import settings
    from diango.conf.urls.static import static
    ...
    urlpatterns = ...
    ...
    if settings.DEBUG:
        urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
        urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

    以上,基本配置就完成,可以在此基础上新建app,也可以拷贝其他工程的app过来了。

    新建app后只需执行: python manage.py collectstatic 就行了


    3 以拷贝其他工程的app过来

    (1) 安装APP (settings.py)

    (2) [makemigrations appname &] migrate      [migrations文件还在就可以直接migrate了]

    (3) 为新app添加url (urls.py)

    (4) python manage.py collectstatic

    KEEP LEARNING!
  • 相关阅读:
    Ubuntu-18.04 设置开机启动脚本
    香橙派PC Plus开发镜像制作
    Flurl使用Polly添加重试机制
    在Windows上远程调试Ubuntu-Arm上的.Netcore
    NAT
    关于visual studio 2019的参数信息快捷键无效
    spring cloud ip地址注册问题
    spring cloud sleuth集成问题
    spring boot admin 安装问题
    pm2+nuxt 自动重启问题
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5403019.html
Copyright © 2020-2023  润新知