首页 > 解决方案 > Django HTML 模板无法加载 CSS 文件

问题描述

在我的 Django 项目中,我添加了一个新的 404 页面,当我输入无效的 url 时会调用该页面。但是,CSS 文件没有与页面一起加载,因此它看起来格式错误。

浏览器给了我这个错误:“拒绝应用样式,因为它的 MIME 类型('text/html')不是受支持的样式表 MIME 类型,并且启用了严格的 MIME 检查。”

关键是,“静态”文件夹中的其他 CSS 文件已正确加载而不会出现此错误,例如 bootstrap.css 文件...

我的设置.py

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['localhost', '127.0.0.1']

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.0/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'static/media')

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

我的网址.py

urlpatterns = [
    ...
]


handler400 = 'utils.views.error_400'
handler403 = 'utils.views.error_403'
handler404 = 'utils.views.error_404'
handler500 = 'utils.views.error_500'

我的 utils.views.py

def error_400(request, exception):
        data = {}
        return render(request, 'utils/mv_admin_400.html', data)

def error_403(request,  exception):
        data = {}
        return render(request, 'utils/mv_admin_403.html', data)

def error_404(request,  exception):
        data = {}
        return render(request, 'utils/mv_admin_404.html', data)

def error_500(request):
        data = {}
        return render(request, 'utils/mv_admin_500.html', data)

我的 404.html

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link href="{% static 'css/handlers/error-nf.css' %}" rel="stylesheet" type="text/css" />
  </head>

我的文件夹结构

src
  - mysite
  - static
    -- css
      --- bootstrap.css
      --- handlers
        ---- error-nf.css

我还尝试将 css 文件从“handlers”文件夹移到父“css”文件夹,但仍然出现错误。

标签: pythondjangodjango-viewsdjango-templates

解决方案


推荐阅读