Django静态资源URL STATIC_ROOT的配置方法
缘由
新手学习Django当配置好HTML页面后,就需要使用一些静态资源,如图片,JS文件,CSS样式等,但是Django里面使用这些资源并不是直接引用一下就好,还要配置路径即STATIC_URL如果这个配置不好的话,请求这些静态资源将返回HTTP404。
经验传授
1.输出settings.py文件里面的STATIC_URL到HTML页面,看一下物理路径指向了哪些,通常是不是跑出根目录的。这里给个DEMO:
defhome(request):
t=get_template("index.html")
html=t.render(Context({
"template_dir":settings.TEMPLATE_DIRS[0],
"title":"Home",
"static_dir":settings.STATIC_ROOT}))
returnHttpResponse(html)
这样访问的HTML页面就可以看到这些路径了。
2.配置STATIC_ROOT变量
STATIC_ROOT=os.path.join(os.path.dirname(__file__),'..','templates/content').replace('\\','/')
可能通过调整第二个和第三个参数来将路径修改正确。(多调试)
3.在urls.py文件中配置urlpatterns变量(主要看高亮这一行):
urlpatterns=patterns('',
url(r'^$',home),
url(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}),
)
4.测试以上配置:
<head>
<metacharset="UTF-8"/>
<title>{{title}}-Oger</title>
<scripttype="text/javascript"src="/static/scripts/jquery-1.11.0.min.js"></script>
</head>
或
<head>
<metacharset="UTF-8"/>
<title>{{title}}-Oger</title>
{%loadstaticfiles%}
<scripttype="text/javascript"src="{%static'scripts/jquery-1.11.0.min.js'%}"></script>
</head>
[/code]
这两种用法都是可以的。
用Django开发Web站点还是很方便的。继续学习中...