django 1.6 静态文件的配置

来源:互联网 发布:linux显示系统时间 编辑:程序博客网 时间:2024/05/16 05:32

刚开始研究django,完全一头雾水,为了静态文件配置的问题研究了好几天都没效果,网上的方法几乎都行不通,快放弃的时候总算解决啦!一定要和大家分享下,如果有人和我一样悲惨,希望这篇文章能帮到你^ ^

window7 python2.7 django1.6.2


目录结构:

mysite

|--manage.py

|--mysite

| | |--__init__.py

| | |--settings.py

| | |--urls.py

| | |--views.py

| | |--wsgi.py

| |--template

| | |--...(html 文件)

| |--static

| | |--css

| | |--js

static文件夹是可以放在任意位置的,这里我选择放在根目录下

解决方法有两个:

方法一:

在settings.py中添加:

STATICFILES_DIRS = (    'static')
注意:这里(’static‘后面)不能加逗号!
在urls.py中添加:

url(r'^staticfiles/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATICFILES_DIRS, 'show_indexes': True}),

注意:这里不能写static,而要换成别的名字,此处换为staticfiles


在html中引用方法:

<link href="/staticfiles/css/test.css" rel="stylesheet" type="text/css">

方法二:

方法一中有两个缺点:

①静态文件地址不能为static

②在django自带的admin页面中,是没有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')

解决!


好开心!

0 0
原创粉丝点击