配置好了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.py 和 mysite/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
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Windows下Apache+Django+mod_wsgi的static和media问题处理 - Python技术站