我是Django的新手,我正在尝试建立一个非常简单的Django应用程序。
现在,我要看Django在线书的第5章:http://www.djangobook.com/en/2.0/chapter05/
现在,在我开始尝试数据库之前,我想做的就是在应用程序中添加一些简单的CS和J。
所以问题是,我该怎么做?我只有一个应用程序,我只想要CSS文件夹中的main.css,js文件夹中的main.js。
我查过了https://docs.djangoproject.com/en/1.3/howto/static-files/#staticfiles-in-templates
如何导入样式表/CSS(是否有类似CakePHP的助手?),我将CSS和JS文件放在哪里,需要配置静态的东西吗?
发布于 2018-04-02 10:02:16
例子:
$ 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
到INSTALLED_APPS
列在settings.py
。现在,当你使用内置开发服务器时,你的样式表将正确呈现。
Django搜索static
默认情况下,安装了应用程序内部的目录,对于Django的当前版本,静态文件在默认情况下是启用的。
这是推荐的,因为当你运行collectstatic
若要收集所有静态文件,同名文件将被覆盖。如果你有一个名为myimage.jpg
在另一个应用程序中,它将被覆盖。在静态目录中指定应用程序名称将阻止这种情况,因为确切的目录结构将在你的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
你可以看到它也在创建目录。在模板中,你现在将引用每个文件及其应用程序的“namespace”:{{ STATIC_URL }}/myapp/test.txt
发布于 2018-04-02 10:53:45
有几个步骤可以做到这一点:
首先,在你的项目目录中(即你的manage.py
文件旁边),您需要创建一个目录来保存您的静态文件。称之为“static_files”。
接下来,你需要让Django知道在该目录中查找,方法是STATICFILES_DIRS
在settings.py
文件的列表中指定它。
像这样:
STATICFILES_DIRS = [
'/full/path/to/your/project/static_files/',
]
在那个static_files
目录下,你可以创建你想要的任何结构,这就是你的目录css
和js
目录可以去的地方。
之后,你应该能够使用{{ STATIC_URL }}
模板中的标记访问静态文件的基本URL。
所以,比如说,你创建了project/static_files/css/base.css
,你可以在你的模板中使用它,就像这样:
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/base.css" />
希望有所帮助!
https://stackoverflow.com/questions/-100004336
复制相似问题