Django中静态文件路径的配置

原创 2015年11月18日 14:33:48
官方文档 https://docs.djangoproject.com/en/1.8/howto/static-files/

里面涉及几个个参数:

(1)第一个参数
STATIC_URL = '/static/'
配置了该参数,那么在app路径下的static/my_app/img/myexample.jpg这个路径的 文件可以这样在模板中使用。
{% load staticfiles %}
<img src="{% static "my_app/img/myexample.jpg" %}" alt="My image"/>
这个路径既然是在app路径下的,那么app自包含的静态文件应该放在这里。形成了 自包含的一个app,这样可以随时把这个app复制到别的项目 中使用。

(2)那么如果有些静态文件不属于app,而是属于项目的,或者操作系统其他绝对路径 的怎么办。
看第二个参数
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
    '/var/www/static/',
)

这样在模板中是不用变更的,仍然是上面那样的写法,只不过查找路径增加了两 个,可以查找项目下的static路径。


(3)接下来那么如果我要把项目上线了,部署在http服务器中,但是每个app中都有静态文 件,每个project中都有静态文件,路径太多,怎么办?

看第三个参数
STATIC_ROOT = "/var/www/example.com/static/"
在定义完该参数后,我们可以运行
python manage.py collectstatic命令,它将会自动把上面配置的静态路径下的所有文件复制到STATIC_ROOT 路径中。这样就可以统一在http服务器中配置静态文件。

(4)注意:

(a)如果我们在多个app下使用这样的路径static/imgs/xxx.png,那 么我们在collectstatic后,相同 名字的会覆盖,导致问题。所以我们一般在app下的static下加上app的namespace,形成static/myapp_name /imgs/xxx.png这 样的结构,即使多个app的静态文件复制到同一个文件夹下,也 没有问题。

(b)配置完static后,配置contrib.staticfiles
在settings.py文件中找到INSTALLED_APPS,确保其中包含有’django.contrib.staticfiles',一般该配置以默认加入了,如果你开发的时候使用的是runserver方式启动服务器,那么你就完成了所有配置,如果你使用其他服务器来开发,则还需要在项目的urls.py中加上如下配置:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns    
# ... the rest of your URLconf goes here ...    
urlpatterns += staticfiles_urlpatterns() 
 需要注意的是,上面代码的第一行必须放在整个urls文件的第一行,上面代码的最后一行必须放在urls文件的最后一行。


那么在开发中,我们关注的:
1、如果仅需要在app中添加静态文件,STATIC_URL就可以满足我们。
2、如果需要在项目目录下,或者别的系统目录下添加静态文件,那么 STATICFILES_DIRS就可以满足我们
3、如果我们要把项目上线,那么我们需要配置STATIC_ROOT并且collectstatic, 这样可以在http服务器中统一配置静态文 件路径,方便做7层负载均衡,或者cdn 等加速静态文件加载的高级功能。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Django中配置静态文件路径

选择了最近一直在看的Django作为我的Android Demo的server端,今天想要实现一个Android下上传文件到服务器的功能,于是想了想,暂时可以先放到静态文件目录下,然后就把自己配置静态...
  • judyge
  • judyge
  • 2015年11月03日 16:32
  • 288

Django中配置静态文件路径

选择了最近一直在看的Django作为我的Android Demo的server端,今天想要实现一个Android下上传文件到服务器的功能,于是想了想,暂时可以先放到静态文件目录下,然后就把自己配置静态...

django--静态文件路径和模板路径配置

1:django处理静态文件:   比如 : 我的工程是xiaoshuo-----》进入 小说 ---》 manage.py  xiaoshuo  在进入: 在下面建立一个 stat...
  • judyge
  • judyge
  • 2015年11月03日 16:33
  • 1823

HTTP核心模块配置静态web服务器 2-文件路径的定义

2,文件路径的定义 2-1 以root方式设置资源路径 语法:root path; 默认:root html; 配置块:http,server,location,if 例...

spring-boot 加载本地静态资源文件路径配置

1.spring boot默认加载文件的路径是 /META-INF/resources/ /resources/ /static/ /public/ 这些目录下面, 当然我们也可以从spring bo...

spring-boot 加载本地静态资源文件路径配置

1.spring boot默认加载文件的路径是  /META-INF/resources/  /resources/  /static/  /public/  这些目录下面, 当然我们也可以...

django 配置对于静态文件访问的路径

1、准备工作 准备css文件,准备js文件,准备image文件。 在网站根目录新建目录【medias】,在【medias】目录新建目录【styles】,用来存放css文件。   ...

Django1.4关于静态文件(css.js等)和模板路径的配置

Django1.4关于静态文件(css.js等)和模板路径的配置   最近在学习新的MVC框架Django,这是一个基于Python语言的Web开发框架。Django框架的好处就是能够以最小...
  • hireboy
  • hireboy
  • 2013年04月12日 23:36
  • 912

Django1.4关于静态文件(css.js等)和模板路径的配置

最近在学习新的MVC框架Django,这是一个基于Python语言的Web开发框架。Django框架的好处就是能够以最小的代价构建和维护高质量的Web应用。而说到Web开发,不可避免的要使用到css和...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Django中静态文件路径的配置
举报原因:
原因补充:

(最多只允许输入30个字)