I am trying to upload my code on apache server using mod_python. I tried a lot, but the server cannot access my static files (all my images, js and css). Here are my Virtualhost settings:
<VirtualHost *:80> ServerName mysite.com ServerAlias www.mysite.com Alias /static/ /home/mysite/products/static/ # RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.mysite\.com RewriteRule (.*) http://mysite.com$1 [R=301,L] # DocumentRoot /home <Directory /home/mysite/> SetHandler mod_python PythonHandler mod_python.publisher PythonDebug On </Directory> <Directory /> Options FollowSymLinks AllowOverride None </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog /var/log/apache2/error.log
my access log:
"GET /giftproducts/static/js/top.js HTTP/1.1" 404 1487 "http://xxx.xxx.xx.xxx/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31" xxx.xxx.xx.xxx - - [23/Apr/2013:15:09:52 -0500] "GET /giftproducts/static/css/index.css HTTP/1.1" 404 1486 "http://xxx.xxx.xx.xxx/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31"
(404 pages not found, WHY ??)
settings.py:
import os import sys path = os.path.abspath(os.path.join(os.path.dirname(__file__))) MEDIA_ROOT = path + '/products/media/' MEDIA_URL = '/media/' PROJECT_ROOT = path STATIC_ROOT = path + '/products/static/' STATIC_URL = '/products/static/' STATICFILES_DIRS = ( path, ) STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder',
I tried to give paths like "/ static / x" and "{{STATIC_URL}} x", but nothing works.
Any help on this would be great. Thanks.
UPDATE: in addition to what Glyn suggested below, I added these lines to my urls.py and then it worked.
if settings.DEBUG: urlpatterns += patterns('', (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}), )