Django1.7.2配置静态文件

java农一枚,

最近在学Django这种搭建起来比较容易的web框架,用起来确实比java web搭建简单多了

虽然java web发展历史悠久,各种解决方案都比较齐全,但对于现在的网络,更多的是快速搭建中小型网站,这样,javaweb就显得太过笨重

回归正题,在Django1.7.2配置静态文件

Django是python web开发的一个很出名的框架,国内python web框架资料比较多,比较全面的也就它了,而且就连python的作者也推荐

静态文件,就是web中的图片,js文件,css文件等

一般这些文件都放指定的文件目录,而这些静态文件一般是不会有访问限制的

网上配置Django的静态文件一搜一大堆,但大多都是1.4版本的,比较旧,而且经过我的测试,很多都不起作用,

当中可能是版本问题,也可能是我配置的遗漏

所以,一般遇到这种情况,只能看官方的

官网配置静态文件链接:https://docs.djangoproject.com/en/dev/howto/static-files/

好,看了一下官网的配置,十分简单

1、在settings.py的INSTALLED_APPS配置django.contrib.staticfiles,像这样

2、在settings.py文件配置

STATIC_URL = ‘/static/‘

3、在访问的页面配置

{% load staticfiles %}

<script type="text/javascript" src="{% static "js/jQuery-1.8.1.js" %}"></script>

4、在app下面建立static文件夹,将静态文件放里面,像这样

这样,就能访问静态文件了

根据上面的配置,我产生了好几个问题,经过自己的测试,都一一明了!

1、这样的配置,只能适用对用app的static文件夹,如果我有多个app,怎么办?因为一般来说,静态文件都是放在一个公共文件夹里面进行访问,

如果比较大型的网站,也有对应的web服务器来分担,这个就令到别论了

那我们怎么配置一个公共的静态文件夹呢?

只要在settings.py文件加上,STATICFILES_DIRS,像这样

STATICFILES_DIRS是一个元组,里面填写的是路径,路径最好用绝对路径

2、settings.py的STATIC_URL = ‘/static/‘能否不用static,而用其他?

可以的,STATIC_URL = ‘/ssss/‘

我这里将static改成ssss

那么访问我的页面也是能引入静态文件(这里我的静态文件是jQUery1.8.1)

上图可以看出,其实访问静态文件的url是/ssss/js/jQuery-1.8.1.js

也就是说STATIC_URL = ‘/ssss/‘就是把

页面的

<script type="text/javascript" src="{% static "js/jQuery-1.8.1.js" %}"></script>

的static替换成‘/ssss/‘

其实,我们直接访问http://localhost:8000/ssss/js/jQuery-1.8.1.js也能访问到这个jQuery文件

那么,页面的

{% load staticfiles %}

<script type="text/javascript" src="{% static "js/jQuery-1.8.1.js" %}"></script>

这两句,{% load staticfiles %}能否省略?

答案是不能,如果省略,访问会报错,报错信息如下

可以看出来,缺少{% load staticfiles %}是不能解析页面staitc这个关键字,

当然static这个关键字也是不能用其他字符替换,否则也会报错,这里我就不贴具体报错信息了

3、STATICFILES_DIRS配置多个路径的时候,而这些路径都有相同一个js或者css等静态文件,或加载哪一个?

经我测试,大概静态文件加载的逻辑是这样,

先根据元组的顺序遍历所有路由,如果静态文件在其中一个路径下找到,而后面的路径相同的静态文件是不会再次加载的,

4、settings.py中INSTALLED_APPS的django.contrib.staticfiles必须配置

属性STATIC_URL,如果添加了django.contrib.staticfiles,而缺少STATIC_URL,就会报如下错:

看报错信息就知道,必须配置STATIC_URL

到此,配置Django静态文件就到这

本博完~~~

时间: 2024-10-11 01:06:47

Django1.7.2配置静态文件的相关文章

django1.10使用本地静态文件

django1.10使用本地静态文件方法 本文介绍的静态文件使用,是指启动web站点后,访问静态资源的用法,实际静态资源地址就是一个个的url 如果没有启动web站点,只是本地调试html页面,那直接用相对路径访问资源即可 1.settings.py中加入下面两句话(应该是默认的,不需要增加) STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static') 说明: 1.STATIC_URL为访问静态资源的链接,比如12

nginx配置静态文件过期时间

1.配置指定文件不记录日志,同时设置静态文件过期时间location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${ expires 15d; access_log off;}2.只配置静态文件过期时间#配置静态文件过期时间location ~ \.(js|css)${ expires 15d;}d 天 h 小时 m 分钟 用curl 查看本地127.0.0.1访问.如:curl -x127.0.0.1:80 www.dd.com/data/cache/style_1_fo

Nginx 配置静态文件过期时间&防盗链

[[email protected] ~]# vim /usr/local/nginx/conf/vhosts/linux.conf location ~ .*\.(gif|jpeg|jpg|png|bmp|swf)$ { access_log off; expires 1d;  #过期时间 1天 } location ~ .*\.(js|css)  #此也也可改为  \.(js|css)来匹配 {     access_log off; expires 2h; } [[email protec

Django1.7如何配置静态资源访问

Django是非常轻量级的Web框架,今天散仙来看下如何在Django中配置静态的资源访问路径,一个中等规模的网站,可能就会有很多静态的资源需要访问,无论是html,txt,还是压缩包,有时候访问这些资源我们并不需要过多的限制,所以任由用户访问,这时我们就没必要在加一个request请求,转发或重定向访问,我们可以直接使用Django的静态资源访问策略. 默认在django里是不支持静态资源访问的,我们需要稍微配置映射才可以. (1)确认你的INSTALLED_APPS里面有'django.co

Django1.8.8 static静态文件访问问题

由于django1.6之后setting.py文件中没有了TEMPLATE_DIRS模板目录和STATICFILES_DIRS静态访问目录,因此需要手动添加.解决办法如下: STATICFILES_DIRS = (os.path.join(BASE_DIR,'static'),)STATIC_URL = '/static/'STATIC_DIRS = [               STATICFILES_DIRS,               ] 注:该测试环境中,/static/不在任何ap

2.1-nginx配置静态文件过期时间

在配置静态缓存时,nginx和apache稍有区别,nginx还是用location 之前我们配置过过滤图片日志,只要在加上缓存时间即可.如: location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { access_log off;                         #关闭日志记录 expires 15d;                            #静态缓存15天 } 如果想设置js|css的缓存,可在下面重写一行.如: locatio

Django1.11加载静态文件

Django版本1.11网站通常需要js,css,images等文件,在Django中,我们把这些文件称为“静态文件”(static files).Django提供django.contrib.staticfiles来管理他们. 使用方法如下: 1.在settings.py中定义你的STATIC_URL: STATIC_URL='/static/' 2.在项目中,static文件的目录如下图所示:  项目名:untitled1;APP名:blog; static 文件夹在APP目录下. 3.在s

apache配置静态文件缓存

设置静态内容缓存,就是让网页里的图片还有js.css这些资源.包括页面缓存到本地而不是每次都去服务器请求资源,而是设置规定的时间,这样做可以减轻服务器的带宽压力和使网页打开速度加快,这样以来用户体验就会好一些.那么如何来设置缓存时间呢? 先确认apache是否加载mod_expires # /usr/local/apache2/bin/apachectl -M|grep -i expires expires_module (shared)  //如没有任何显示,说明需要先编译expires模块

apache 配置静态文件缓存和开启gzip压缩

1,设置文件静态缓存3天: 在httpd.conf 里添加如下代码: #文件静态缓存配置 <IfModule expires_module> #打开缓存 ExpiresActive on #文件缓存259200/3600/24=3天 ExpiresByType text/css A259200 ExpiresByType application/x-javascript A259200 ExpiresByType application/javascript A259200 ExpiresBy