Django 静态文件目录结构

2023-04-11 00:00:00 文件 静态 结构

Django 的静态文件目录结构通常如下:

project_name/
    static/  # 存放应用共享的静态文件
        css/
        js/
        img/
    app_name/  
        static/  # 存放特定应用的静态文件
            app_name/  # 存放特定应用下的静态文件,这样可以避免应用之间静态文件冲突
                css/
                js/
                img/

比如,如果有一个名为“blog”的应用,那么它的静态文件目录结构就应该如下:

blog/
    static/
        blog/
            css/
            js/
            img/

在模板中引用这些静态文件时,可以使用以下语法:

{% load static %}

<link rel="stylesheet" href="{% static 'blog/css/main.css' %}">
<script src="{% static 'blog/js/main.js' %}"></script>

其中,{% load static %} 用于加载 Django 的静态文件模板标签集合,可以在模板中使用 {% static %} 标签来动态地生成静态文件的 URL。例如,{% static 'blog/css/main.css' %} 会生成 /static/blog/css/main.css 这样的 URL,并且会自动将该 URL 与静态文件根目录关联。如果在开发环境中使用 Django 的开发服务器,那么访问这个 URL 时,Django 会自动找到这个静态文件并返回给客户端。

如果在生产环境中使用 Apache 或 Nginx 等 Web 服务器,那么需要将静态文件复制到 Web 服务器的静态文件目录下,然后再配置 Web 服务器的静态文件访问路径。例如,在 Apache 的配置文件中可以增加以下代码来设置静态文件访问路径:

Alias /static /path/to/static/files
<Directory /path/to/static/files>
    Require all granted
</Directory>

相关文章