Django——静态文件(如bootstrap)的配置

静态文件如CSS, javascript(如bootstrap), 图片等文件在django中的配置官方文档写的比较模糊,自己通过实验验证后并整理如下,以防遗忘,目前只整理了关于本地开发中的设置方式,实际发布的配置方式稍后整理。

——————————————————————经测试使用第一种方法—————————————————————————————————

【第一部分:配置】

步骤一:配置STATICFILES_DIRS

两种情况:

1. 默认情况,静态文件放在app目录下的static目录中,这种情况不用进行特别配置。

2. 静态文件与特定app无关或是多个app共用同一份静态文件,这种情况下将静态文件文件放在任意目录中,那么在settings.py文件中找到STATICFILES_DIRS部分,在其中添加放置静态文件的目录路径,在该部分的注释中说到,需要使用绝对路径,不要使用相对路径,并且无论在任何系统中都使用“/”作为路径分隔符。

步骤二:配置contrib.staticfiles

在settings.py文件中找到INSTALLED_APPS,确保其中包含有’django.contrib.staticfiles‘,本人使用的是1.4.3版本,该配置以默认加入了,因此也不用特别配置,如果你开发的时候使用的是runserver方式启动服务器,那么你就完成了所有配置,如果你使用其他服务器来开发,则还需要在项目的urls.py中加上如下配置:

Python代码

  1. from django.contrib.staticfiles.urls import staticfiles_urlpatterns  
    
    # ... the rest of your URLconf goes here ...  
    
    urlpatterns += staticfiles_urlpatterns()  

需要注意的是,上面代码的第一行必须放在整个urls文件的第一行,上面代码的最后一行必须放在urls文件的最后一行。

【第二部分:在template中使用静态文件】

两种使用方式:

方法1: 使用context processor:

采用这种方式需要有一些额外配置,打开settings.py,确认TEMPLATE_CONTEXT_PROCESSORS中包含有‘django.core.context_processors.static‘,本人使用的是1.4.3版本,打开后没有找到TEMPLATE_CONTEXT_PROCESSORS一项配置,那么自己加上这一项配置也可以生效,代码如下:

Python代码

TEMPLATE_CONTEXT_PROCESSORS = (
    ‘django.core.context_processors.debug‘,
    ‘django.core.context_processors.i18n‘,
    ‘django.core.context_processors.media‘,
    ‘django.core.context_processors.static‘,
    ‘django.contrib.auth.context_processors.auth‘,
    ‘django.contrib.messages.context_processors.messages‘,
)  

配置完成后,在模板中引用静态文件如下:

Html代码

<img src="{{ STATIC_URL }}images/hi.jpg" />  

如果你是手写的views部分方法,那么目前访问还不能生效,还需要在views.py中使用RequestContext来处理request请求后才能生效,如果你使用的generic view(通用视图),那么可以忽略一下配置,因为其中已使用RequestContext自动处理了:

Python代码

from django.template import RequestContext
from django.shortcuts import render_to_response  

def index(request):
    return render_to_response(‘index.html‘, RequestContext(request))  

附注: 本人亲自试验过这种配置方式,但最终请求url地址有点诡异,暂时未找到原因和解决方法,因此这种方法需继续测试,慎用!

方法2: 使用template标签的方式:

这种方式比较简便,在本人开发过程中也比较易用,不用额外配置,也不用在每个view中添加RequestContext,在template中可以直接使用,示例代码如下:

Python代码

#直接使用
{% load staticfiles %}
<img src="{% static "images/hi.jpg" %}" />  

#变量方式使用
{% load staticfiles %}
<link rel="stylesheet" href="{% static user_stylesheet %}" type="text/css" media="screen"/>  

上面代码第一种方式是直接硬编码静态文件地址,第二种方式是使用变量方式使用静态文件,使用第二种方式时可以如下代码所示:

Python代码

from django.shortcuts import render_to_response  

def index(request):
    return render_to_response(‘index.html‘, {‘user_stylesheet‘: ‘css/user.css‘}) #将user_stylesheet加入context传入template进行渲染  

实际开发的静态文件部署及访问方式待补充

参考:

1. 官方静态文件设置文档

时间: 2024-10-09 06:29:29

Django——静态文件(如bootstrap)的配置的相关文章

55 Django静态文件配置

一.Django静态文件配置 1.项目文件夹,新建一个文件夹statics 文件夹 2.在配置文件settings.py中,配置: 文件中有第句: STATIC_URL = '/static/'#静态文件物理地址的别名 在上一句文件中下加一句: 在上一句文件中下加一句: STATICFILES_DIRS=[ os.path.join(BASE_DIR,"statics")] #静态文件的物理地址 3.把静态文件放在statics 文件夹中 4.html文件在引用静态文件时: <s

Django静态文件static的配置

Django静态文件static的配置 static文件夹的作用 ? static文件夹一般用于存放css,js,图片等静态文件 配置方式 ? 1.创建static文件夹 ? 2.在settings.py文件中新建一项(如果有则无需新建) STATIC_URL = '/static/' ? 3.在settings.py文件中新建一项 STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ] ? 4.引用静态文件中的文件 ? 列如引用一个cs

Django静态文件配置、request方法、ORM简介、字段的增删改查

app的创建注意事项: 在Django新创建的app要在seetings.py中添加注册,才会生效 创建app:django-adminapp an startapp app名称 或者 python3 mansge.py startpp名称 手动创建的app不会自带存放html的templates文件夹,需要手动创建 Django静态文件配置 对于前端已经写好了的文件,我们只是拿过来使用,那么这些文件都可以称之为"静态文件"; 静态文件可以是:boostrap一类的前端框架,已经写好了

Django静态文件输出

一直很纠结的一个问题,网络上也有很多方案,但总感觉不完美. 之前的方案 1 .  在setting.py中     STATIC_ROOT = 'static/'     STATIC_URL = 'static/'      2.  在模板页面中     <link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.css">     <script type="text/java

Swift3.0服务端开发(二) 静态文件添加、路由配置以及表单提交

今天博客中就来聊一下Perfect框架的静态文件的添加与访问,路由的配置以及表单的提交.虽然官网上有聊静态文件的访问的部分,但是在使用Perfect框架来访问静态文件时还是有些点需要注意的,这些关键点在其官方文档上并未提出.今天我们要做的事情就是通过浏览器访问静态文件,然后在静态文件中使用form表单往指定的路由上进行提交相应的数据. 一.静态文件的添加与访问 1.未使用Xcode管理的Perfect的静态文件根目录的配置 在PHP开发或者Java Web开发中,都有一个根目录来存储相应的静态文

nginx日志切割,日志格式,静态文件不记录日志,配置缓存

我是直接写的一个简单的shell实现的,内容如下: #! /bin/bash datedir=`date +%Y%m%d` /bin/mkdir  /home/logs/$datedir >/dev/null 2>&1 /bin/mv /home/logs/*.log /home/logs/$datedir /bin/kill -HUP `cat /var/run/nginx.pid` 这样执行以后,就会在/home/logs/$datedir目录下生成日志文件,你可以在/etc/cr

Django 静态文件配置(static files)

Django version: 1.9 Python versrion: 3.5.2 这几天Django配置静态文件(本例是要加载index.css), 总是不对,最后终于试对了,这里记录下,方便以后查阅 最后实在没办法把Django1.9的官方文档下载下来(网页版),仔细的阅读了下相关的章节. 首先看下项目的结构图(pycharm2016 professional): 1.首先在INSTALLED_APPS中要有'django.contrib.staticfiles' INSTALLED_AP

Django——静态文件配置

本文目的 最近用django开发项目,发现django的静态文件(js,css和img等)配置比较麻烦,开发环境和生产环境的配置还不一样,这里记录一下,作为备忘.我当前使用的版本是django v1.4.3. 吐槽:django的版本不兼容是个大问题,网上搜索相关问题时,解决方案到是一大推,但是均没有标注版本,导致均不能适用当前版本,走了不少弯路. 开发环境配置 需要下面几个步骤 1. 在app目录下创建static目录,将静态文件和相关文件夹放到此目录下,如your_app/static/im

Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查

一.Django项目的创建与介绍 ''' 安装Django #在cmd中输入pip3 #出现这个错误Fatal error in launcher: Unable to create process using '"' #可以直接用 python3 -m pip 代替 pip3 #这个问题是pip3 版本过低直接在cmd中执行 python3 -m pip install --upgrade pip 更新pip3 # 在指定解释器环境下安装django 1.11.9 # 在真实python3环境