剛開始研究django,徹底一頭霧水,爲了靜態文件配置的問題研究了好幾天都沒效果,網上的方法幾乎都行不通,快放棄的時候總算解決啦!必定要和你們分享下,若是有人和我同樣悲慘,但願這篇文章能幫到你^ ^css
window7 python2.7 django1.6.2html
目錄結構:python
mysitedjango
|--manage.py
| |--mysite
| | |--init.py
| | |--settings.py
| | |--urls.py
| | |--views.py
| | |--wsgi.py
| |--template
| | |--...(html 文件)
| |--static
| | |--css
| | |--jspython2.7
static文件夾是能夠放在任意位置的,這裏我選擇放在根目錄下
解決方法有兩個:編碼
方法一:url
在settings.py中添加:code
STATICFILES_DIRS = ( 'static' )
注意:這裏('static'後面)不能加逗號!
在urls.py中添加:htm
url(r'^staticfiles/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATICFILES_DIRS, 'show_indexes': True}),
注意:這裏不能寫static,而要換成別的名字,此處換爲staticfilesit
在html中引用方法:
<link href="/staticfiles/css/test.css" rel="stylesheet" type="text/css">
方法二:
方法一中有兩個缺點:
在settings.py中添加:
STATICFILES_DIRS = ( 'static', ) STATIC_ROOT = os.path.join(BASE_DIR,'mysite/static')
以上前提要在mysite文件夾裏新建一個static文件夾,用於存放admin自帶的css等靜態,注意:STATICFILES_DIRS
和STATIC_ROOT
地址不能相同,'static'後要加逗號(好奇怪...一下子要加一下子不要加...我也不清楚是爲何,可是不加就會報錯)
而後運行python manage.py collectstatic
這個命令應該是把STATICFILES_DIRS
指定下的文件都複製到了STATIC_ROOT
指定的文件夾下吧...
在urls.py中添加:
url(r'^static/(?P<path>.*)$','django.views.static.serve',),
在views.py中須要改爲:
return render_to_response("test.html",RequestContext(request))
在html中引用:
<link href="{{STATIC_URL}}css/css.css" rel="stylesheet" type="text/css">
以上~
可是若是你按步驟作到如今,應該會出現編碼錯誤的問題:
Exception Type: UnicodeDecodeError
聽說這是python的一個bug,找到出錯地方:
Exception Location: C:\Python27\lib\mimetypes.py in enum_types, line 249
因此咱們須要在mimetypes.py文件中,添加
reload(sys) sys.setdefaultencoding('gb18030')
解決!
好開心!