CSS 在 Django 应用程序中不工作,不知道哪里出了问题

CSS is not working in Django app, no clue what is wrong

我知道这是一个重复的问题,但我找不到任何答案可以为我创建静态文件 运行。我正在使用 Django 版本:1.10.5 和 python 版本:3.4.3...

我也看了官方文档,没能解决我的问题...

下面是我的项目结构:

myproject4
    /myapp/
        /__pycache__/
        /migrations/
        __init__.py
        admin.py
        apps.py
        models.py
        tests.py
        views.py
    /myproject/
        /__pycache__/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    /static/
        /css/
            hpage.css
            robot.css
        /images/
            -- Images --
        /js/
            -- JavaScript Files --
    /template/
        hello.html
    manage.py

这是我尝试过的所有方法:

{% load staticfiles %}

对于我的 hello.html 页面,就在顶部,

<link href="{%static 'css/hpage.css' %}" rel="stylesheet" />
<link href="{%static 'css/robot.css' %}" rel="stylesheet" />

用于在 hello.html 中链接我的 CSS 文件(它使用了 2 个 CSS 文件)。

我已经尝试 {{ STATIC_URL }} 做同样的事情以及我应该做的必要的事情,但没有找到运气。

当我使用 <style> </style> 标签时,css 工作得很好,但这不是我想要的。

settings.py:

DEBUG = False

ALLOWED_HOSTS = ['*']

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]

#Other stuffs go here

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

urls.py:

from django.conf.urls import url,include
from django.contrib import admin
from myapp.views import hello,user_profile
from myapp import views
admin.autodiscover()

urlpatterns = [
    url(r'^admin/$', admin.site.urls, name='admin'),
    url(r'^hello/$', views.hello, name='hello'),
    url(r'^hello/user_profile/', views.user_profile, name='user_profile'),
]

views.py:

from django.shortcuts import render, render_to_response
from django.template.context import RequestContext

def hello(request):
      return render_to_response('hello.html')

def user_profile(request):
      return render_to_response('user_profile.html')

请指导我哪里出错了...

提前谢谢你:)

编辑: 在我的 settings.py 文件中,DEBUG = False 因为我有一个名为 404.html 默认为我给出错误页面。

像下面那样对 urls.py 进行更改。并查看 documentation 作为参考

from django.conf.urls.static import static

urlpatterns = [
    rl(r'^admin/$', admin.site.urls, name='admin'),
    url(r'^hello/$', views.hello, name='hello'),
    url(r'^hello/user_profile/', views.user_profile, name='user_profile'),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

这些是我将 CSS 包含到我的 Django 项目中所遵循的步骤:

  1. 首先,我在settings.py中添加了:

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static")
    STATIC_URL = '/static/'
    STATICFILES_DIRS = [os.path.join(BASE_DIR, "static")]
    
  2. urls.py(应用程序文件夹)中的第二个

     urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    
  3. 复制了项目文件夹中的所有 CSS 个文件(与 manage.py 同级)
  4. Include/Declare CSS 在模板中(我将我的包含在 base.html 中)

    <head>
         {% load static %}
         <link rel="stylesheet" href="{% static 'assets/css/bootstrap-theme.css' %}" media="screen" >
         <link rel="stylesheet" href="{% static 'assets/css/main.css' %}">
         <link rel="stylesheet" href="{% static 'assets/css/style.css' %}">
    </head>
    
  5. 运行:

    python manage.py collectstatic
    

和reload/restart浏览器或删除缓存。