zoukankan      html  css  js  c++  java
  • 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!
  • 相关阅读:
    php
    nginx
    docker
    pyenv 配置python虚拟环境
    [运维笔记] Nginx编译安装
    [运维笔记] Mysql单库备份脚本
    BurpSuite Intruder 4种攻击模式
    java判断一个单向链表是否有环路
    二分查找(递归和非递归)
    反转链表算法题
  • 原文地址:https://www.cnblogs.com/roronoa-sqd/p/5403019.html
Copyright © 2011-2022 走看看