geekdoc-python-zh/docs/pythoncentral/managing-static-files-djang...

3.2 KiB
Raw Permalink Blame History

管理 Django 应用程序的静态文件

原文:https://www.pythoncentral.io/managing-static-files-django-application/

Django 的默认静态文件管理器

在每个 web 应用程序中,静态文件(如 css、Javascript 和图像)赋予网站独特的外观和感觉,使其脱颖而出。对于任何用户来说,一个漂亮、专业的网站比一个粗糙、未经修饰的网站更有吸引力。

在 Django 应用程序中,我们使用 Django 的默认静态文件管理组件来管理静态文件,比如django.contrib.staticfiles,它将所有静态文件收集到一个位置,这样它们就可以由前端 web 服务器提供服务,比如 apache 和在每个INSTALLED_APPS下寻找“静态”目录的AppDirectoriesFinder

使用 Django 提供 CSS 和图像

首先,在我们的应用程序myblog中创建一个目录static,这样目录结构就变成了:


myblog/

  static/

然后,在新的static目录中创建一个目录myblog,并在其下创建另一个static目录,这样目录结构就变成了:


myblog/

  static/

    myblog/

      static/

这种目录结构可能看起来很奇怪,但它实际上是有意义的,因为 Django 的AppDirectoriesFinder将搜索INSTALLED_APPS或我们的myblog应用程序,并递归地找到它下面的静态目录。因此,位于myblog/static/myblog/static/style.css的样式表style.css可以在我们的模板文件中作为myblog/style.css引用。

现在,我们将以下代码插入myblog/static/myblog/static/style.css:


p {

  color: red;

}

然后,我们修改模板文件来链接style.css文件,以测试文件的效果。


{% load staticfiles %}
{% if post_list %}

{% endfor %}

{% else %}

过去两天没有帖子。

{% endif %}

现在,重新加载页面http://localhost:8000/,您将看到元素的文本变成红色:

Django Static File Example Screenshot

然后我们可以在页面中添加一个 img 元素,该元素引用静态目录myblog/static/myblog中存储的jpg:


{% load staticfiles %}
{% if post_list %}

{% endfor %}

{% else %}

过去两天没有帖子。

{% endif %}

[/html]

现在您可以刷新页面http://localhost:8000来查看主页上显示的新图像。

Django Static File Example Screenshot 2

总结和提示

在本文中,我们学习了如何管理静态文件(图像、css、javascript 等)。)在我们的 Django 应用程序中。需要记住的一点是Django 的内部静态文件管理器和目录查找器会自动查找myblog/static/myblog下的文件,所以最好把文件放在那个目录下,而不是直接放在myblog/里。通过将文件放入指定目录Django 知道如何区分不同 app 之间的静态文件,比如myblog/style.cssmyblog_version2/style.css