django 1.6 靜態文件的配置

剛開始研究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">

方法二:

方法一中有兩個缺點:

  1. 靜態文件地址不能爲static
  2. 在django自帶的admin頁面中,是沒有css效果的
    所以作一些改進:

在settings.py中添加:

STATICFILES_DIRS = (  
    'static',  
)  
STATIC_ROOT = os.path.join(BASE_DIR,'mysite/static')

以上前提要在mysite文件夾裏新建一個static文件夾,用於存放admin自帶的css等靜態,注意:STATICFILES_DIRSSTATIC_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')

解決!

好開心!

相關文章
相關標籤/搜索