环境
- centos7
- django 1.11
- nginx
白话
我们可以使用Template 设置我们的网页,同时,一个完美的网页需要css,js,image 等静态文件的支持。
django中配置方式貌似有不少总,因为很多相关的博客写的方式并不一致,当然这可能是django 的版本不同导致的。
当我们在一个项目下创建一个app后,我们就需要为该app下创建一个static 文件夹来存放相关静态资源。
但创建了多个app后,就需要在多个app下创建static。
这样引入了一个问题,因为,我们的可能用了同一个js文件。分别存放显然是浪费加载时间。
于是在实际部署的时候,我们会将不同app下的static 文件放到一个“合适”的地方。提高资源加载速度,同时也方便管理。
好了,大概就是这个思路,我们下面介绍如何配置
配置
step one
--app --migrations --static --css --js --image --templates --__init__.py ...
文件结构如上所示,注意,我这里只展示了某app下的结构,而不是整个项目结构,可能你的没有templates这个文件夹,这不要紧,这个是我创建的。
我们最好在static下分类好不同文件夹 css , js,image.(这是推荐的做法)
多个app时,我们就在不同的app 下创建static。(后面我们在讲更合理的方法,这里需要这样做为了你理清步骤)
step two
在settings.py中的STATIC_URL = '/static/'后面添加
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
这个STATIC_ROOT 就是我们最终部署时候需要使用的,解决资源分散的问题。
BASE_DIR 这个变量在settings.py的开始部分被定义,就是项目根目录的目录名。
os.path.join 方法,在项目根目录下新建一个static文件夹。
我看到很多博客这里配置的很多,很乱,让人摸不着头脑。
这个地方完全可以这样配置,加载我们的静态资源。(信我,我可是被很多不负责任的博客坑惨了)
step three
创建文件夹完,配置文件这两步都完成后,我们需要的就是把他放到网页中显示。
在app下新建一个templates,如果有就不用创建
--app --migrations --static --templates --appname --index.html --__init__.py ...
大家注意,我并没有直接在templates下直接创建index.html ,而是创建了一个”appname”(就根据你的app来命名这样不会冲突)。并在appname 下创建的index.html。
因为django去找template的时候是吧app下的templates ,存为一个list。如果我们多个app,就可能导致,想访问app2的index,结果却返回了app1的index.html。
index.html 内容
{% load static %} #这个地方引入static这个文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <img src="/UploadFiles/2021-04-08/{% static ">这里的#号注释是方便大家理解,并不是html支持的格式,粘贴的时候需要去掉
并在image文件夹下加入一张名为logo.png的图片,因为图片可以直观的判读我们的设置是否生效。
python manage.py runserver 0.0.0.0:9000
访问你的9000端口,查看时候生效。注意我们到这里还未配置nginx.
如果正确,说明路径没问题。
step four
python manage.py collectstatic
该命令收集项目下的静态文件,统一保存到 STATIC_ROOT 就是我们第二步,刚刚配置的。
--project --project --static --app1 --app2 --manage.py ...step five
nginx 中配置
location ^~ /static/ { root /home/project/; }这个地方 注意配置到static的上级就可以了。
我之前配置成了root /home/project/static 就会一直提示404
在部署的时候,django也建议将settings.py中的debug=True 改为debug=False。以保证安全性。
重新启动nginx ,看看是否成功了呢?
如果成功了,可以将app下的static删掉再试试,理论上也是可以成功的,因为此时我们已经将项目所有的静态文件全都集中到了根目录下的static中。
总结
配置静态文件还是要先了解他是如何生效的,one by one,搞清逻辑。
那样在配置才不会混乱,否则不同的教程只会让人抓狂。
如果找不到相关博客的话,静下心来阅读官方文档。你可以做到的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]