问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何在Django设置静态文件(2023年最新解答)

发布网友 发布时间:2024-09-30 14:04

我来回答

1个回答

热心网友 时间:2024-10-15 01:06

导读:今天首席CTO笔记来给各位分享关于如何在Django设置静态文件的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

Django静态文件与动态文件

编辑settings:

MEDIA_ROOT和MEDIA_URL代表的是用户上传后的文件保存的地方。可以理解为存放可变文件的文件夹。

这两个参数有什么用处呢?

在Django的FileField和ImageField这样的Model类中,有upload_to参数可选。当upload_to设置相关的地址后,如例子:

文件上传后将自动保存到:os.path.join(MEDIA_ROOT,upload_to),在本例中就是:/static/uploads/test_pictures

而MEDIA_URL,则代表用户可以通过怎样的URL来访问这些上传后的文件资源。

在本例子中,本机地址是:,MEDIA_URL设置为/static/uploads/

那么通过:文件名就可以访问相关的上传图片或者其他文件。

STATIC_ROOT和STATIC_URL则是网站中,用于网站放置的静态图片、CSS、JS等文件的保存地址。可以理解为,保存网站运行中不会再变文件的文件夹(即不会删除或者新增)

STATIC_URL,同MEDIA_URL类似;设置STATIC_URL为"/static/"时候,通过:文件名就可以访问相关的静态文件了。

STATIC_ROOT是一个比较特殊的文件夹。这是Django的开发模式和部署模式区别最大的地方。

通常我们在开发模式下,可以在我们所在的project下建立相应的app,然后每个app下都建立相应的static文件夹。在开发模式下(Debug=True),Django将为我们自动查找这些静态文件(每个app)并在网页上显示出来。然而,在部署模式下,Django认为这些工作交由web服务器来运行会更有效率。

因此,在部署时,我们需要运行一下:

这个命令将会把每个app里的static目录下的文件copy到STATIC_ROOT这个文件夹下。

如果在部署模式下,即:(Debug=False)访问相关网页,如:文件名,将不会访问Django下各个App中的static文件夹,而是STATIC_ROOT中所指定的文件夹。

为了在部署模式下正确使用,我们还需要在urls.py中添加以下:

这相当于告诉Django碰到一个"static"开头的链接时,该如何处理。

了解完以上之后,我们让图片在前端显示出来。

编写一个show视图函数,来传递动态图片:

然后编写show.html:

Django中静态文件之各个配置详解

2.STATIC_ROOT:这个是配置静态文件存放目录,另外一个作用就是运行收集静态文件的命令(关于命令的部分后面会讲)时,最终静态文件收集存放的位置,注意,这个配置只会在debug=false时生效(生产环境)(至于为什么之后会讲)。

4.STATICFILES_DIRS:在实际项目开发中,如果我们的静态文件存放在一个或多个目录时,可以定义一个列表,用于存储静态文件,django默认配置并没有这个配置,如果需要,请自己定义,当项目下存在一个或多个静态资源的目录时,非常适合这样定义。注意,这个配置只在debug=true时生效(开发环境)

8.templates:定义HTML模板文件存放目录,如果你用的是pycharm的IDE的话,在创建项目时,可以根据配置自动创建一个templates目录,pycham会自动帮我们配置,如果没有配置,就需要手动创建,当然,你也可以选择自定义该目录

9.collectstatic:在项目部署时,我们还要进行静态文件的收集,如果手动收集静态文件的话,工程量无疑很大,而且部署后,debug肯定要改为debug=false,这时如果不进行静态文件的收集的话,django自带的部分,如admin后台就会出现CSS无法加载的问题,因此,项目部署前,这个操作是是必须的。

django的django.contrib.staticfiles提供了一个收集静态文件的命令:pythonmanage.pycollectstatic,执行该命令后,会将静态文件收集到配置好的STATIC_ROOT中

django前端怎么设置静态文件路径

设置一个路径变量

APP_PATH=os.path.dirname(os.path.dirname(__file__))

#

Absolute

path

to

the

directory

static

files

should

be

collected

to.

#

Don't

put

anything

in

this

directory

yourself;

store

your

static

files

#

in

apps'

"static/"

subdirectories

and

in

STATICFILES_DIRS.

#

注意要修改STATIC_ROOT变量

STATIC_ROOT

=

os.path.join(APP_PATH,'static').replace('\\','/')

#

URL

prefix

for

static

files.

#

Example:

ample.com/static/",

"h

ic.example.com/"

STATIC_URL

=

'/static/'

#

当然还有STATICFILES_DIRS变量

STATICFILES_DIRS

=

(

#

Put

strings

here,

like

"/home/html/static"

or

"C:/www/django/static".

#

Always

use

forward

slashes,

even

on

Windows.

#

Don't

forget

to

use

absolute

paths,

not

relative

paths.

os.path.join(APP_PATH,'mobile_oa_server/static').replace('\\','/'),

)

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页面头部加入:

{%loadstaticfiles%}

html

head

title麦子学院/title

/head

body

4、

在html模版页面,可以用如下两种方式调用:

imgsrc="{%static'images/logo.gif'%}"alt=""/

imgsrc="/static/images/acer.gif"alt=""/

推荐使用第二种,因为如果图片名称是动态的,可以通过views这么绑定:

imgsrc="/static/images/{{name}}.gif"alt=""/

css的引用同样如此:

linkrel="stylesheet"href="{%static‘style/base.css’%}"type="text/css"

linkrel="stylesheet"href="/static/style/base.css"type="text/css"

js的引用同样如此:

scripttype="text/javascript"src="{%static‘js/jquery-1.8.3.min.js'%}"/

scripttype="text/javascript"src="/static/js/jquery-1.8.3.min.js"/

如何在django里使用静态文件

推荐用新版本的Django进行开发,可以肯定的是Django1.4以后的版本应该都支持下面的设置

注意:Django1.4版本需要在project/urls.py底部加上:

fromdjango.contrib.staticfiles.urlsimportstaticfiles_urlpatternsurlpatterns+=staticfiles_urlpatterns()

Django1.5-Django1.8不需要添加上面的代码。

settings.py静态文件相关示例代码及说明:

#Staticfiles(CSS,JavaScript,Images)

STATIC_URL='/static/'#当运行pythonmanage.pycollectstatic的时候#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中使用importxxx时,找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时,打开开发服务器pythonmanage.pyrunserver直接访问/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中访问到它!

结语:以上就是首席CTO笔记为大家整理的关于如何在Django设置静态文件的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于如何在Django设置静态文件的相关内容别忘了在本站进行查找喔。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 如何避免wps卡顿? 属鼠的男人找对象是属什么,属鼠的人和什么属相合 96年鼠的姻缘在哪年 属相相合年份运势提升 2024属鼠找对象属什么最佳 黑客攻击网站能报案吗 黑客攻击报案有用吗 django后端怎么上传图片(2023年最新分享) 如何知道自己的天顶星座? 慢性萎缩性胃炎中医治疗方法有哪些? 月经第一天肛门坠胀怎么回事 天秤座女最大弱点 月经期间排便肛门胀痛怎么回事 2023山西高本贯通院校有哪些 月经期间肛门坠胀怎么回事 银行流水必 高本贯通的学校有那些?? 例假肛门坠胀怎么回事 月经期肛门坠胀是什么原因 IBMT系列笔记本Minidp囗能传输一般文件吗? 在网上下载了个Linux的ISO文件,能像XP一样用ultraiso做U盘吗,就是直接... ...E盘装的是ubuntu Linux, 格式化C,E,F在Dos下看不 华硕无光驱上网本,自带linux ,现换装xp,但winpe和pq里都看不见硬盘... 新的电脑联想G470 装的是LINUX系统,如何才能改成XP系统??用U盘做的P... 2017哪些大学自主招生 cma今年什么时候考试时间 2017年上海的自主招生先是和往年的一本线差不多还是比往年的一本... django如何存文件(2023年最新解答) 公共关系学和会计哪个专业就业机会大,分别有哪些职业? 请求详细回答 谢... django文件上传后怎么查看(2023年最新分享) 请问公共关系学怎么样呀? 一口价的黄金回收是按标价还是按克 金镯子为什么没有钢印 我新买的手机索爱st18i,照出来的照片在手机里显示很清楚,但是在电脑上... ...在手机上看非常清楚.怎么放到电脑上就不是很清楚了呢. ...网里用wifi.为什么手机能够正常使用,但是电脑的不稳定?还一直显示感 ... 我的 内存卡在手机上能显示东西 但是插进电脑就是读不出来 很卡.求求... ...在手机里可以读出来.但是在电脑上就不可以用了.需要被格式化下面是... ...一会一关),电脑里看不到手机.请问是怎么会事. ...个系统文件PAGEFILE.SYS,1.5个G请问是干什么用的? c盘里多出个隐藏文件 有2G 叫pagefile.sys 这是干嘛的 能删么 那位大... 一匹空调多少电费一度电? 怎么设置才能不让,企鹅宠物在电脑桌面上显示呢!谢谢了,大神帮忙啊_百 ... 家用一匹空调一小时多少度电? 怎么样才能不让QQ宠物在桌面显示 ...资本主义发展的国内市场问题的?简要分析资本主义世界市 如何在任务栏显示所有打开的word文档? 江上有奇峰锁在烟雾中寻常看不见偶尔露峥嵘诗句字谜