为什么我的django项目中的CSS无法渲染?

时间:2018-09-25 17:48:47

标签: python css django

我仍然只是在玩Django,无法弄清楚我的CSS文件在做什么。我的HTML有效,但CSS不起作用。我猜想它与settings.py或一些我没有使用的特殊“ Django代码”有关。这是我的HTML的代码(我猜这是要显示的相关代码)。

这是我的HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>home</title>
    <link rel="stylesheet" type="text/css" href="../css/styles.css"/>
  </head>
  <body>

    <h3>HELLO WORLD!</h3>

  </body>
</html>

这是我的设置。py:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'ecommerce005.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

这是我的urls.py:

from django.conf.urls import url
from django.contrib import admin

from .views import home_page

urlpatterns = [
    url(r'^$', home_page),
    url(r'^admin/', admin.site.urls),
]

这是我的views.py:

from django.http import HttpResponse
from django.shortcuts import render

def home_page(request):
    return render(request, "index.html", {})

我的文件顺序如下: 'src'目录:     1)'css'文件夹保存我的styles.css文件     2)“ projectname”文件夹包含上面显示的所有django文件     3)'templates'文件夹包含我的index.html文件

请尽可能具体。我在网上找到了资源,但是对于我来说,它们似乎太模糊了,无法找到解决方案。感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

您需要在settings.py中设置“ STATIC_ROOT”

STATIC_URL = '/staticfiles/'
STATIC_ROOT = os.path.join(BASE_DIR, '/static/')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

如果DEBUG = False,则需要设置代理服务器(如nginx)来提供这些静态文件

link可以进一步解释。

答案 1 :(得分:0)

Wootton,正如所说的那样,您需要在settings.py上设置static_root,之后您可以调用CSS

<link type="text/css" rel="stylesheet" href="{{ STATIC_URL }}css/style-responsive.css">

但是在设置static_root之前/之后,您需要创建一个名为static的文件夹并在其中提供CSS。

我认为这会对您有所帮助!

答案 2 :(得分:0)

settings.py

中配置静态文件
STATIC_URL = '/static/'
STATICFILES_DIRS=[
    (os.path.dirname(BASE_DIR),"static"),
]
STATIC_ROOT = (os.path.dirname(BASE_DIR),"static_files") 

在模板(即HTML文件)中

{% load static %}
<html>
 ....
<link href="{% static 'styles/style.css' %}" rel="stylesheet" media="screen, print" type="text/css">

目录结构
-项目文件夹
-|静态
---- |样式
------ | styles.css