网站开发日志20121130-解决Django的静态资源展示问题

最近自己做的项目是用Django框架,因为以前都是在用Java开发,所以还有很多不适应,很多基本问题都要Google一番,这里也会对一些技术点进行记录。今天的工作其实很简单,就是将静态页面转为模板显示,直接输出。遇到的问题就是,我的静态资源都无法访问了,无论是使用相对路径还是绝对路径,包括那些文件夹的位置我也换了好几个地方,后来无奈Google一番,才知道,Django的资源其实都是依赖于URL的,而且网上也有各种方法,最终选择了使用Django自带的一个APP(django.contrib.staticfiles)实现,下面我只记录一下我的代码以及操作:
1 将APP所有的静态文件以及文件夹放在一个名为static的文件夹下,然后将这个static的文件夹当到这个APP的根目录下,这样做是为了管理方便,其实目录名和位置都可以修改;
2 在settings.py做如下修改
STATICFILES_DIRS这个元组里增加刚才static目录的完整路径,注意加引号,另外,不管是什么操作系统,都请用 /

确认STATIC_URL的值是否设置,默认为/static/ 也就是静态资源的url前缀(prefix),这里可以根据需要修改自己想要的值,我就是是保持默认了
确认INSTALLED_APPS里的'django.contrib.staticfiles'这个APP没有被注释

3 在urls.py中增加如下代码:

urlpatterns += staticfiles_urlpatterns()
需要引入:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
4 在模板文件引入静态资源的地方做类似的修改:
<link type="text/css" rel="stylesheet" href="{{ STATIC_URL }}css/easycoding-all.css">

5 很明显,这里的 STATIC_URL就是在settings.py定义的值,这里之所以这么做就是不把值写死了,那这个值是如何传进来的呢?我们还需要修改一下view.py文件:
在原本render_to_response()方法中增加一个参数RequestContext(request),类似:

return render_to_response('index.html', RequestContext(request))
这里是需要引入:
from django.template.context import RequestContext
好了,确认好以上的操作之后,重启一下服务器,看下结果吧,那些CSS、JS和图片等都可以展现出来了吧。
至少目前在开发阶段时,静态资源访问是没有问题了,明天继续努力,把课程列表页面完成吧!加油!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值