首页 > 解决方案 > 为什么静态文件不会在 django web 应用程序中加载?

问题描述

因此,我在这里看到了很多教程来解释要做什么,但是无论我如何更改静态文件似乎都不会加载。这就是我的文件看起来像 atm

设置.py

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

job_app/urls.py

urlpatterns = [
    path('', main, name='index'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

索引.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>JobPortal - Free Bootstrap 4 Template by Colorlib</title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    {% load static %}

    <link href="https://fonts.googleapis.com/css?family=Nunito+Sans:200,300,400,600,700,800,900" rel="stylesheet">

    <link rel="stylesheet" href="{% static 'css/open-iconic-bootstrap.min.css' %}">
    <link rel="stylesheet" href="{% static 'css/animate.css' %}">

    <link rel="stylesheet" href="{% static 'css/owl.carousel.min.css' %}">
    <link rel="stylesheet" href="{% static 'css/owl.theme.default.min.css' %}">
    <link rel="stylesheet" href="{% static 'css/magnific-popup.css' %}">

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

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

    <link rel="stylesheet" href="{% static 'css/bootstrap-datepicker.css' %}">
    <link rel="stylesheet" href="{% static 'css/jquery.timepicker.css' %}">


    <link rel="stylesheet" href="{% static 'css/flaticon.css' %}">
    <link rel="stylesheet" href="{% static 'css/icomoon.css' %}">
    <link rel="stylesheet" href="{% static 'css/style.css' %}">
  </head>
  <body>

求职者/urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('job_app.urls'))
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

标签: pythondjangostatic-files

解决方案


下面的配置对我有用。Django 只需要两件事。

  1. 什么应该是基本静态 URL (STATIC_URL)
  2. 以及在哪里搜索静态文件 (STATICFILES_DIRS)

urlpatterns从 urls.py 中删除静态。仅在 settings.py 和 remove 中定义STATIC_URLand 。STATICFILES_DIRSSTATIC_ROOT

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

推荐阅读