django静态文件的托管

因为微信抢票小作业的原因,看了一下 微信抢票 的代码,再次复习了一下django. 

其中关于静态文件的托管这件事,这次花时间彻底看了一下,在这里记录下来。

1. 静态文件可以交给django托管

但是只能在debug模式下交给django托管。

相关设置为settings.py中的STATIC_URL='/static/'和INSTALLED_APPS中加入 'django.contrib.staticfiles'.

也就是说,STATIC_URL开头的请求,都转发给了'django.contrib.staticfiles'。它在找文件的时候,会找一些Django的内置路径,因为django.admin页面中的样式表都是/static/admin/css/base.css 这样引用的,所以,STATIC_URL一般都是设置'/static/',如果STATIC_URL不是'/static/', django.admin页面就会打不开。

如果自己也有静态文件要托管,则可以在settings.py中加入STATICFILES_DIRS  = [whatever], 声明自己的静态文件在的地方。这样,通过 /static/xxx,xxx也会在STATICFILES_DIRS中列出的目录下进行寻找。

所以说,要让django 来做静态文件serve, 应该设置 STATIC_URL为'/static/',然后所有的对静态文件的路径都以 /static开头, 并在STATICFILES_DIRS里加上自己的静态文件路径。

2. 生产模式下还是得交给nginx

但是考虑到,生产的时候是nginx来做的,所以生产的时候直接在nginx里面有一条,把 /static 转发到诸多STATICFILES_DIRS里面。至于Django内置的admin页面,生产环境中不要用它。(要用就得找出Django内置的找css/js的目录在哪里了,不过,在生产环境中有必要暴露admin页面给用户吗?很危险而且不必要吧)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 项目部署到阿里云(nginx+uwsgi)上后,静态文件加载没有问题。但是在本地,使用开发服务器,却始终加载不成功...
    兰山小亭阅读 10,944评论 0 9
  • 处理静态文件,尤其是在开发时,是一件很头疼的事情。在这篇文章中,我们将会讨论一些设置,目录结构和他们之间的相互影响...
    51reboot阅读 5,656评论 0 1
  • Web框架之Django: (1)简介: Django是一个由Python写成开源的重量级Web应用框架,采用MT...
    老肖阅读 8,235评论 0 18
  • 切换到创建项目的目录 cd C:\Users\admin\Desktop\DjangoProject创建名为pr...
    在努力中阅读 8,733评论 2 3
  • 即使生命重来很多遍,那天,我依然会对你一见钟情。 即使经历再多磨难,未来,我依然愿意有你相伴。 有你的余生,就是我...
    小曹菇凉阅读 1,823评论 1 4

友情链接更多精彩内容