Django提供静态文件服务

Django为了方便开发调试,debug模式下runserver会利用django.contrib.staticfiles应用自动部署资源服务,但是生产模式下(或Debug=True时),如果还想要Django提供资源服务,就必须明确提供资源相关的配置,使其承担资源服务。
以下是两种使用Django提供资源服务的配置方式,推荐使用这一种,发布生产环境后,可以使用nginx提供静态资源服务,Django只做动态内容服务。

第一种形式:
1、项目设置中配置(settings.py)

STATIC_ROOT = os.path.join(BASE_DIR, ‘static‘)

2、在全局url中配置(urls.py)

re_path(r‘^static/(?P<path>.*)$‘, static.serve, {‘document_root‘: settings.STATIC_ROOT})

3、执行资源搜集命令

python manage.py collectstatic

4、模板中使用

<link rel="stylesheet" type="text/css" href="{% static ‘mysite/style.css‘ %}" />

5、项目结构图

第二种形式:
1、在应用url中配置(urls.py)

re_path(r‘^static/(?P<path>.*)$‘, static.serve, {‘document_root‘: ‘./static/‘}, name=‘static‘)

2、模板中使用

<link rel="stylesheet" type="text/css" href="{% url ‘mysite:static‘ ‘mysite/style.css‘ %}" />

3、项目结构图

参考:https://docs.djangoproject.com/zh-hans/2.0/ref/contrib/staticfiles/

原文地址:http://blog.51cto.com/xuke1668/2147243

时间: 2024-10-13 22:48:24

Django提供静态文件服务的相关文章

Django -&gt; debug模式下的静态文件服务(/media/)

正式发布django项目的时候,如果存在静态文件(一般会统一放在名称为media或static的目录下),则需要建立url到文件系统的映射,例如,使用nginx的时候我们需要进行这样的配置. # Django media location /media { alias /home/lyndon/github/Mathematician/dijkstra/media; } location /static { alias /home/lyndon/github/Mathematician/dijk

django中静态文件路径配置

#环境:ubuntu12.04+python27+django1.4.2+[ngix]+fastcgi; #如果经过ngix服务器的话无疑可以在任意位置放置,只要在ngix中配置相关的路径文件,但很多时候在调试时我们不想经过ngix服务器,那就需要对django进行静态文件的路径配置. #首先我想把我的静态文件放在项目的根目录下,创建一个static的文件夹,为了便于显示效果,我在static下放置了一个sa.txt文件,里面随意写一些内容! #文件目录如图所示: #打开settings.py文

django处理静态文件

转载自 http://www.cnblogs.com/wswang/p/5519101.html 静态文件指的是js css 还有图片这些,配置方法如下 1. 在设置文件(settings.py)中,installed_apps中添加 django.contrib.staticfiles 然后设置static_url 1 STATIC_URL = '/static/' 2. 在模板中的使用方式如下 1 2 {% load staticfiles %} <img src="{% static

[django]windows下用Django,静态文件请求失败,出现UnicodeDecodeError

问题:windows下用Django,静态文件请求失败,出现UnicodeDecodeError:'utf-8' codec can't decode byte 0xb0 in position 1:invalid start byte,怎么解决啊? 回答:应该是静态文件的格式问题.也许它的编码是GBK的,你用UTF-8解,就解不开.用记事本打开,另存一个UTF-8格式.

apache上部署django的静态文件

一直在优化自己博客的代码, 昨天把css样式表分离出来, 用作静态 文件, 但是自己还没学django怎么使用静态文件, 经过一番google 终于解决了. django 使用静态文件有两种方法, 一种就是部署在django上, 另外一种 是部署在apache 上, 前一种方法有一定的缺陷, 效率不高, 而且会造 成一定的安全威胁, 具体我也不知道, 大家可以看官方文档, 但是还是 向大家介绍一下. 可以在你的项目下建一个static目录, 在settings.py 中添加: #填写你静态文件的

django的静态文件的引入

django的静态文件的引入 1.路径配置 在templates文件夹的同级目录下新建static文件夹 在setting里面写上STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')] 2.静态文件的引入 硬编码 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <t

Django -&amp;gt; debug模式下的静态文件服务(/media/)

正式公布django项目的时候,假设存在静态文件(通常会统一放在名称为media或static的文件夹下),则须要建立url到文件系统的映射,比如.使用nginx的时候我们须要进行这种配置. # Django media location /media { alias /home/lyndon/github/Mathematician/dijkstra/media; } location /static { alias /home/lyndon/github/Mathematician/dijk

Django对静态文件的处理——部署阶段

参考:http://blog.makto.me/post/2012-11-09/static-files-in-django-deployment HTML模板中的用法: {% load staticfiles %} <img src="{% static "images/hi.jpg" %}" /> 下面来总结下上面提到过的 settings.py 中的设置项: STATIC_ROOT:执行 ./manage.py collectstatic 后,所有

Django中,图片显示问题--Django中静态文件处理方法指南

html网页中要显示一张JPG图片,可是怎么放都是显示不了. 后来搞明白,这个涉及静态文件的处理方法. 在urls.py中添加一行: urlpatterns = patterns('', (r'^site_media/(?P<path>.*)','django.views.static.serve',{'document_root':'E:/media'}), }然后在html页面中,写入 <p><img src="/site_media/gmshi.jpg&quo