django配置文件详解,django静态资源目录配置
注:本文为《一个完整的Django入门指南》系列教程(中文版)第11节。你可以查看本教程的完整目录。
静态文件设置
静态文件是指CSS、JavaScript、字体、图片或任何其他用于形成用户界面的资源。
实际上,Django本身并不负责处理这些文件。为了使我们的开发过程更容易,Django提供了一些函数来帮助我们管理静态文件。这些函数可以在INSTALLED_APPS的django.contrib.staticfiles应用中找到(译者:django为了方便开发,还负责处理静态文件。在生产环境中,静态文件由Nginx等反向代理服务器直接处理,而应用服务器则专门处理自己擅长的业务逻辑)。
市场上有这么多前端组件库,我们没有理由继续渲染基本的HTML文档。我们可以很容易地将Bootstrap 4添加到我们的项目中。Bootstrap是一个用HTML、CSS和JavaScript开发的开源工具包。
在项目的根目录中,除了boards、templates和myproject文件夹之外,创建一个名为static的新文件夹,并在static文件夹中创建另一个名为css的文件夹:
我的项目/
-我的项目/
-电路板/
-我的项目/
-模板/
-静态/-这里
- css/-还有这里
- manage.py
- venv/
前往getbootstrap.com下载最新版本:
下载CSS和JS的编译版本
在您的计算机中,解压缩bootstrap-4.0.0-beta-dist.zip文件,并将文件css/bootstrap.min.css复制到我们项目的css文件夹中:
我的项目/
-我的项目/
-电路板/
-我的项目/
-模板/
-静态/
- css/
- bootstrap.min.css -此处
- manage.py
- venv/
下一步是告诉Django在哪里可以找到静态文件。打开settings.py,拉到文件底部,在STATIC_URL后添加以下内容:
STATIC_URL=/static/
STATICFILES_DIRS=[
os.path.join(BASE_DIR, static ),
]
还记得模板目录吗,它与这个配置相同?
现在我们必须在模板中加载静态文件(引导CSS文件):
templates/home.html
{%loadstatic%}!DOCTYPEhtml
超文本标记语言
头
元字符集=utf-8
标题板/标题
linkrel= style sheet href= { % nbs
p;static'css/bootstrap.min.css'%}">
</head>
<body>
<!--bodysuppressedforbrevity...-->
</body>
</html>首先,我们在模板的开头使用了 Static Files App 模板标签 {% load static %}。
模板标签{% static %}用于组成资源所在的URL。在这种情况下,{% static 'css/bootstrap.min.css' %}将返回 /static/css/bootstrap.min.css,它相当于 **http://127.0.0.1:8000/static/css/bootstrap.min.css**。
{% static %}模板标签使用 settings.py文件中的 STATIC_URL 配置来组成最终的URL,例如,如果您将静态文件托管在像 https://static.example.com/这样的子域中 ,那么我们将设置 STATIC_URL=https://static.example.com/ ,然后 {% static 'css/bootstrap.min.css' %}返回的是 https://static.example.com/css/bootstrap.min.css
如果目前这些对你来说搞不懂也不要担心。只要记得但凡是需要引用CSS,JavaScript或图片文件的地方就使用{% static %}。稍后,当我们开始部署项目到正式环境时,我们将讨论更多。现在,我们都设置好了。
刷新页面 127.0.0.1:8000 ,我们可以看到它可以正常运行:
现在我们可以编辑模板,以利用Bootstrap CSS:
{%loadstatic%}<!DOCTYPEhtml>
显示效果:
到目前为止,我们使用交互式控制台(python manage.py shell)添加新的版块。但我们需要一个更好的方式来实现。在下一节中,我们将为网站管理员实现一个管理界面来管理这些数据。
下一节:Django入门指南12-Django Admin的使用
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。