Django on apache2/mod_wsgi and collectstatic
Question: I'm configuring Django on Apache under Ubuntu 11.04. My media files is not
available.

httpd.conf

    
    
    Alias /robots.txt /home/i159/workspace/prod-shivablog/shivablog/robots.txt
    Alias /favicon.ico /home/i159/workspace/prod-shivablog/shivalog/favicon.ico
    
    AliasMatch ^/([^/]*\.css) /home/i159/workspace/prod-     shivablog/shivablog/site_media/static/css/$1
    
    Alias /media/ /home/i159/workspace/prod-shivablog/shivablog/site_media/static/
    Alias /static/ /home/i159/workspace/prod-shivablog/shivablog/site_media/static/
    
    <Directory /home/i159/workspace/prod-shivablog/shivablog/static>
    Order deny,allow
    Allow from all
    </Directory>
    
    <Directory /home/i159/workspace/prod-shivablog/shivablog/media>
    Order deny,allow
    Allow from all
    </Directory>
    
    WSGIScriptAlias / /home/i159/workspace/prod-shivablog/shivablog/deploy/wsgi.py
    WSGIDaemonProcess local-shivablog.com python-path=/home/i159/workspace/prod-    shivablog/shivablog/:/home/i159/.envs/shivablog/python2.7/site-packages
    
    <Directory /home/i159/workspace/prod-shivablog/shivablog>
    <Files wsgi.py>
    Order allow,deny
    Allow from all
    </Files>
    </Directory>
    

urls

    
    
    # Static files url.
    (r'^media/(?P<path>.*)$', 'django.views.static.serve',
                                       {'document_root': settings.MEDIA_ROOT}),
    (r'^site_media/static/(?P<path>.*)$', 'django.views.static.serve',
                                    {'document_root': settings.STATIC_ROOT}),
    

wsgi

    
    
    import os, sys
    
    sys.path.insert(0,  os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), os.pardir,  os.pardir)))
    sys.path.insert(0,  os.path.abspath(os.path.join(os.path.abspath(os.path.dirname(__file__)), os.pardir)))
    
    from django.core.handlers.wsgi import WSGIHandler
    os.environ["DJANGO_SETTINGS_MODULE"] = "shivablog.settings"
    application = WSGIHandler()
    

settings

    
    
    MEDIA_ROOT = ''
    
    MEDIA_URL = "/media/"
    
    STATIC_ROOT = ''
    
    STATIC_URL = "/site_media/static/"
    

How to make my media files available? What the configurations are correct?
After `collectstatic` all the static and media files collects to
`site_media/static`. Should I get my media files from this directory
(`site_media/static`)?


Answer: You should not have an entry in your urls.py file for media or static files.
If you do at least wrap them in a cause which only does this in debug mode =
True.

<https://docs.djangoproject.com/en/1.2/howto/static-files/>

    
    
    (r'^media/(?P<path>.*)$', 'django.views.static.serve',
                                       {'document_root': settings.MEDIA_ROOT}),
    (r'^site_media/static/(?P<path>.*)$', 'django.views.static.serve',
                                    {'document_root': settings.STATIC_ROOT}),
    

Also your .htaccess file has the following lines which point to the same
folder, I think they should be different as your static files are not in your
media folder.

    
    
    Alias /media/ /home/i159/workspace/prod-shivablog/shivablog/site_media/static/
    Alias /static/ /home/i159/workspace/prod-shivablog/shivablog/site_media/static/
    

