配置好了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