首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Django和CSS的一个简单例子

Django和CSS的一个简单例子
EN

Stack Overflow用户
提问于 2018-04-02 01:37:45
回答 2查看 0关注 0票数 0

我是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文件放在哪里,需要配置静态的东西吗?

EN

回答 2

Stack Overflow用户

发布于 2018-04-02 10:02:16

例子:

代码语言:txt
复制
$ 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" />

确保添加myappINSTALLED_APPS列在settings.py。现在,当你使用内置开发服务器时,你的样式表将正确呈现。

Django搜索static默认情况下,安装了应用程序内部的目录,对于Django的当前版本,静态文件在默认情况下是启用的。

Django示例有路径my_app/static/my_app/myimage.jpg如果你的应用程序和项目有相同的名字,那就有点让人困惑了。

这是推荐的,因为当你运行collectstatic若要收集所有静态文件,同名文件将被覆盖。如果你有一个名为myimage.jpg在另一个应用程序中,它将被覆盖。在静态目录中指定应用程序名称将阻止这种情况,因为确切的目录结构将在你的STATIC_ROOT目录。

一个简单的例子来说明这一点。如果你有一个Django项目,其中有两个应用程序,如下所示:

代码语言:txt
复制
.
├── 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:

代码语言:txt
复制
.
├── 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

票数 0
EN

Stack Overflow用户

发布于 2018-04-02 10:53:45

有几个步骤可以做到这一点:

首先,在你的项目目录中(即你的manage.py文件旁边),您需要创建一个目录来保存您的静态文件。称之为“static_files”。

接下来,你需要让Django知道在该目录中查找,方法是STATICFILES_DIRSsettings.py文件的列表中指定它。

像这样:

代码语言:javascript
复制
STATICFILES_DIRS = [
    '/full/path/to/your/project/static_files/',
]

在那个static_files目录下,你可以创建你想要的任何结构,这就是你的目录cssjs目录可以去的地方。

之后,你应该能够使用{{ STATIC_URL }}模板中的标记访问静态文件的基本URL。

所以,比如说,你创建了project/static_files/css/base.css,你可以在你的模板中使用它,就像这样:

代码语言:javascript
复制
<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/css/base.css" />

希望有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100004336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档