如果你遵循Django 的指导方针,你的生活就会大大简化.
在您的样例代码中,在application目录内创建一个名为static的文件夹.在此文件夹中,放置您的CSS文件.
示例:
$ django-admin.py startproject myproject
$ cd myproject
myproject$ python manage.py startapp myapp
myproject$ mkdir myapp/static
myproject$ cd myapp/static
myproject/myapp/static$ nano style.css
在您的模板中:
<link rel="stylesheet" href="{{ STATIC_URL }}style.css" />
确保将myapp
添加到settings.py
的INSTALLED_APPS
列表中.现在,当您使用内置开发服务器时,您的样式表将被正确呈现.
默认情况下,Django会在已安装的应用程序中搜索static
个目录,对于Django的当前版本,默认情况下会启用静态文件.
Django示例的路径为my_app/static/my_app/myimage.jpg
建议您这样做,因为当您运行collectstatic
时,收集所有静电文件时,同名文件将被覆盖.如果您在另一个应用程序中有一个名为myimage.jpg
的文件,它将被覆盖.在静电目录中给出应用程序名称可以避免这种情况,因为确切的目录 struct 将在STATIC_ROOT
中复制.
举一个简单的例子来说明这一点.如果您有一个包含两个应用程序的Django项目,如下所示:
.
├── assets
├── manage.py
├── myapp
│ ├── __init__.py
│ ├── models.py
│ ├── static
│ │ └── myapp
│ │ └── test.txt
│ ├── tests.py
│ └── views.py
├── myproj
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ └── wsgi.py
└── otherapp
├── __init__.py
├── models.py
├── static
│ └── otherapp
│ └── test.txt
├── tests.py
└── views.py
assets
是你的STATIC_ROOT
.现在,当您运行collectstatic
时:
.
├── assets
│ ├── myapp
│ │ └── test.txt
│ └── otherapp
│ └── test.txt
├── manage.py
├── myapp
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── models.py
│ ├── static
│ │ └── myapp
│ │ └── test.txt
│ ├── tests.py
│ └── views.py
├── myproj
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── settings.py
│ ├── settings.pyc
│ ├── urls.py
│ └── wsgi.py
└── otherapp
├── __init__.py
├── __init__.pyc
├── models.py
├── static
│ └── otherapp
│ └── test.txt
├── tests.py
└── views.py
您可以看到,它也在创建目录.在您的模板中,您现在将使用其应用程序的"命名空间"引用每个文件:{{ STATIC_URL }}/myapp/test.txt