这边文章是我在豆瓣网上看到的,由于它把django项目的静态文件和资源文件都处理了,感觉比较好,我试了,蛮好的。下面就是内容,我简单的整理了下:
在django1.3中,提供了django.contrib.staticfiles这个模块,方便使用静态文件,显示图片,使用css等。在设置时需要注意的是:
1.MEDIA_ROOT MEDIA_URL 2.STATIC_ROOT STATIC_URL 3.ADMIN_MEDIA_ROOT 4.STATICFILES_DIRS
具体步骤为:
1.在settings.py中添加与修改:
# static/file operation HERE = os.path.dirname(os.path.dirname(__file__)) # Absolute filesystem path to the directory that will hold user-uploaded files. # Example: "/home/media/media.lawrence.com/media/" #MEDIA_ROOT = '' MEDIA_ROOT = os.path.join( HERE , 'media/').replace('\\','/') # URL that handles the media served from MEDIA_ROOT. Make sure to use a # trailing slash. # Examples: "http://media.lawrence.com/media/", "http://example.com/media/" #MEDIA_URL = '' MEDIA_URL = '/media/' # Absolute path to the directory static files should be collected to. # Don't put anything in this directory yourself; store your static files # in apps' "static/" subdirectories and in STATICFILES_DIRS. # Example: "/home/media/media.lawrence.com/static/" STATIC_ROOT = '' STATIC_PATH = os.path.join( HERE , 'static').replace('\\','/') # URL prefix for static files. # Example: "http://media.lawrence.com/static/" STATIC_URL = '/static/' # add property : ADMIN_MEDIA_ROOT BY slider # ADMIN_MEDIA_ROOT = '/static/admin/' # Additional locations of static files STATICFILES_DIRS = ( # Put strings here, like "/home/html/static" or "C:/www/django/static". # Always use forward slashes, even on Windows. # Don't forget to use absolute paths, not relative paths. os.path.join(HERE,'static').replace('\\','/'), )
项目urls.py里的代码:
from django.conf import settings if settings.DEBUG: urlpatterns += patterns('', (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_PATH, 'show_indexes':True}), )
然后在模板里面这样引用(这里css文件的目录是 : 项目目录/static/forum/csss/base.css):
<link rel="stylesheet" type="text/css" href="/static/forum/css/base.css"/>
顺便说一下:
MEDIA_ROOT 用于存放user上传的东西
STATIC_ROOT用于存放网站自己的js,css,图片