导读:本篇文章首席CTO笔记来给大家介绍有关django怎么引用静态文件的相关内容,希望对大家有所帮助,一起来看看吧。
Django1.8中应该怎么配置js静态资源
1、先在你的app文件中新建一个文件夹static,再分别建立三个子文件夹js,style,images。
2、在settings.py中,加入:
STATIC_URL = \'/static/\'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, \"static\"),
)
3、在html页面头部加入:
{% load staticfiles %}
html
head
title麦子学院/title
/head
body
4、
在html模版页面,可以用如下两种方式调用:
img src=\"{% static \'images/logo.gif\' %}\" alt=\"\"/
img src=\"/static/images/acer.gif\" alt=\"\"/
推荐使用第二种,因为如果图片名称是动态的,可以通过views这么绑定:
img src=\"/static/images/{{name}}.gif\" alt=\"\"/
css的引用同样如此:
link rel=\"stylesheet\" href=\"{% static ‘style/base.css’ %}\" type=\"text/css\"
link rel=\"stylesheet\" href=\"/static/style/base.css\" type=\"text/css\"
js的引用同样如此:
script type=\"text/javascript\" src=\"{% static ‘js/jquery-1.8.3.min.js\' %}\"/
script type=\"text/javascript\" src=\"/static/js/jquery-1.8.3.min.js\"/
如何在django里使用静态文件
推荐用新版本的Django进行开发,可以肯定的是 Django 1.4 以后的版本应该都支持下面的设置
注意:Django 1.4 版本需要在 project/urls.py 底部加上:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()
Django 1.5 - Django 1.8 不需要添加上面的代码。
settings.py 静态文件相关示例代码及说明:
# Static files (CSS, JavaScript, Images)
STATIC_URL = \'/static/\' # 当运行 python manage.py collectstatic 的时候# STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来# 把这些文件放到一起是为了用apache等部署的时候更方便STATIC_ROOT = os.path.join(BASE_DIR, \'collected_static\') # 其它 存放静态文件的文件夹,可以用来存放项目中公用的静态文件,里面不能包含 STATIC_ROOT# 如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以STATICFILES_DIRS = ( os.path.join(BASE_DIR, \"common_static\"), \'/path/to/others/static/\', # 用不到的时候可以不写这一行) # 这个是默认设置,Django 默认会在 STATICFILES_DIRS中的文件夹 和 各app下的static文件夹中找文件# 注意有先后顺序,找到了就不再继续找了STATICFILES_FINDERS = ( \"django.contrib.staticfiles.finders.FileSystemFinder\", \"django.contrib.staticfiles.finders.AppDirectoriesFinder\")
静态文件放在对应的 app 下的 static 文件夹中 或者 STATICFILES_DIRS 中的文件夹中。
当 DEBUG = True 时,Django 就能自动找到放在里面的静态文件。(Django 通过 STATICFILES_FINDERS 中的“查找器”,找到符合的就停下来,寻找的过程 类似于 Python 中使用 import xxx 时,找 xxx 这个包的过程)。
示例项目 dj18static, 应用 app 下面有一个 static 里面有一个 zqxt.png 图片:
dj18static├── blog│ ├── __init__.py│ ├── admin.py│ ├── migrations│ │ └── __init__.py│ ├── models.py│ ├── static # 应用 blog 下的 static, 默认会找这个文件夹│ │ └── 【zqxt.png】│ ├── tests.py│ ││ └── views.py├── common_static # 已经添加到了 STATICFILES_DIRS 的文件夹│ └── js│ └── 【jquery.js】│├── dj18static│ ├── __init__.py│ ├── settings.py│ ├── urls.py│ └── wsgi.py└── manage.py
当 settings.py 中的 DEBUG = True 时,打开开发服务器 python manage.py runserver 直接访问 /static/zqxt.png 就可以找到这个静态文件。
也可以在 settings.py 中指定所有 app 共用的静态文件,比如 jquery.js 等
STATICFILES_DIRS = ( os.path.join(BASE_DIR, \"common_static\"),)
把 jquery.js 放在 common_static/js/ 下,这样就可以 在 /static/js/jquery.js 中访问到它!
django中怎么载入css等静态文件
这个问题,在开发环境下和生产环境下解决的方法不一样: 开发环境下是在urls.py里面加条语句:比如 (r\'^static/(?Ppath.*)$\',\'django.views.static.serve\',{\'document_root\':settings.STATIC_ROOT}), 这样来做静态文件服务 生产环境下,需要把静态文件用collect指令收集起来,部署在专门的前端HTTP服务器比如nginx中,django直观动态请求即可。
django 怎么配置可以获取静态文件
可以用服务器配置,js、css、img转到相应路径。也可以在url.py里加入(r\'^media/(?Ppath.*)$\',\'django.views.static.serve\',{\'document_root\': settings.STATIC_PATH}),可以在settings.py里设置也可以使用绝对路径。意思是/media/?.(js|css|img|others)的静态文件在那个路径下。
django 1.9 怎么配置静态文件
想把以前的一个asp.net网站移植到django上,发现django对静态资源似乎支持的不好,不能直接根据相对路径查找,要做一些配置,找了很多解决方案,整理如下:
1、django对静态资源的配置是跟版本有关的!!!切记!!!1.3以前的和以后的配置不太一样!!!下面仅针对Django1.9;
2、settings.py中的installed
apps
要包含\'django.contrib.staticfiles\';
3、settings.py中的STATIC_URL就是app目录下的静态文件所在文件夹的相对路径,默认为/static/,可以自定义;
4、调用时用如下形式:
{%
load
static
%}
img
src=\"{%
static
\"my_app/myexample.jpg\"
%}\"
alt=\"My
image\"/
导入js,img等静态文件后报错:
File
\"D:\\Python27\\lib\\mimetypes.py\",
line
249,
in
enum_types
ctype
=
ctype.encode(default_encoding)
#
omit
in
3.x!
UnicodeDecodeError:
\'ascii\'
codec
can\'t
decode
byte
0xb0
in
position
1:
ordinal
not
in
range(128)
[27/Dec/2015
15:26:32]
\"GET
/static/assets/img/nextPage_small_grey.jpg
HTTP/1.1\"
500
59
找到关键报错文件mimetypes.py,百度了一下,找到了解决方案:在Python安装目录下的lib/site-packages中添加一个文件sitecustomize.py,内容为
import
sys
sys.setdefaultencoding(\"cp1251\")
我设置的编码格式为utf-8,不知道其他格式是否也可以。重启运行,成功。
结语:以上就是首席CTO笔记为大家介绍的关于django怎么引用静态文件的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。
以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!
版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。