django使用静态文件二

  这边文章是我在豆瓣网上看到的,由于它把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,图片 
原文地址:https://www.cnblogs.com/slider/p/2584615.html