django中使用static文件-图片,css,js文件非常麻烦。于是直接使用apache的alias功能。
在development环境开发时,也就是使用django自带的web server来开发测试时可以在urls.py中加入:
from django.conf import settings
urlpatterns += patterns(”,
(r’^static/(?P<path>.*)$’, ‘django.views.static.serve’, {‘document_root’: settings.STATICFILE_ROOT}),
)
在settings.py中定义STATICFILE_ROOT,其值为你想要放静态文件的目录。
这样就可以了。
但是当你部署项目到apache上面发现就不可以了。
如果直接使用alias就可以解决这个问题,其实django的book也是推荐这种方法。
alias就是把匹配的请求和对应的文件或者目录对应起来,例如
Alias /static/images /var/www/django/test/resources/pictures
这样比如访问:
http://[ip]/static/images/test.png
apache就会访问
/var/www/django/test/resources/pictures/test.png
因此可以在virtualhost 里面加上一句,有一点非常之非常重要,就是这句一定要在
WSGIScriptAlias / /var/www/django/test/django.wsgi
之前,否则不管访问什么url,都会转去django.wsgi文件执行,那么上面加的那句就没有任何效果。
下面给出一个简单的配置
1 <VirtualHost *:8088>
2
3 ServerName 127.0.0.1
4 DocumentRoot /var/www/django/test
5 LogLevel info
6 ErrorLog ${APACHE_LOG_DIR}/hello-error.log
7 CustomLog ${APACHE_LOG_DIR}/hello-access.log Combined
8
9 Alias /resources/pictures/ /var/www/django/test/resources/pictures/
10 WSGIScriptAlias / /var/www/django/test/django.wsgi
11
12 <Directory /var/www/django/test/static>
13 Options indexes
14 Order allow,deny
15 Allow from all
16 </Directory>
17
18 <Directory />
19 Options indexes
20 Order allow,deny
21 Allow from all
…
…
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.