【问题标题】:Css file not linking with project in djangoCss文件未与django中的项目链接
【发布时间】:2019-08-17 23:37:48
【问题描述】:

我想将 css 文件与我的 django 项目链接。我尝试了各种方法,但它没有反映 html 页面的任何变化。我是新手,任何帮助将不胜感激。

这是我的 html 代码:

{% extends 'base.html' %}
{% load static %}

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


{% block content %}


<form class="form-signin">
<div class="text-center mb-4">


    {% csrf_token %}
    <ul>{{shipper_data_object.first_name}}</ul>
    <ul>{{shipper_data_object.last_name}}</ul>



<div class="checkbox mb-3">
    <label>
        <input type="checkbox" value="remember-me"> Remember me
    </label>
</div>

<button class="btn btn-lg btn-primary btn-block" 
type="submit">Sign in</button>
{% endblock %}


<p class="mt-5 mb-3 text-muted text-center">© 2017-2019</p>
</div>
</form>

这是我的views.py:

def shipper_login(request):
shipper_data_object = shipper_form(request.POST)
if request.method == "POST" and shipper_data_object.is_valid():

    shipper_data_object.shipper_ID = shipper_data_object.cleaned_data['shipper_ID']
    shipper_data_object.last_name = shipper_data_object.cleaned_data['last_name']
    shipper_data_object.first_name = shipper_data_object.cleaned_data['first_name']
    shipper_data_object.contact = shipper_data_object.cleaned_data['contact']
    shipper_data_object.comapany_name = shipper_data_object.cleaned_data['comapany_name']
    shipper_data_object.gst_pin_or_pan = shipper_data_object.cleaned_data['gst_pin_or_pan']
    shipper_data_object.origin = shipper_data_object.cleaned_data['origin']
    shipper_data_object.destinations = shipper_data_object.cleaned_data['destinations']

    shipper_data_object.save()
shipper_data_object = shipper_form()
# supplier_data_object = auction.suppliers.views.suppliers_form

# if supplier_data_object.operational_cities == shipper_data_object.origin or supplier_data_object.operatioal_cities == shipper_data_object.destinations:
#     return HttpResponse("found match!!")
# else:
#     return HttpResponse("match not found!!")

return render(request, 'shipper_details.html', {'shipper_data_object': shipper_data_object})

这是我的 base.html:

{% load static %}
<link rel="stylesheet" href="{% static 'css/custom.css'%}" 
type="text/css">
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" 

<meta charset="UTF-8">
<title>Title</title>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data- 
toggle="collapse" data-target="#navbarNavDropdown"
            aria-controls="navbarNavDropdown" aria- 
expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavDropdown">
        <ul class="navbar-nav">
            <li class="nav-item active">
                <a class="nav-link" href="#">Home <span class="sr- 
only">(current)</span></a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Features</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Pricing</a>
            </li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" 
id="navbarDropdownMenuLink" role="button"
                   data-toggle="dropdown" aria-haspopup="true" 
aria-expanded="false">
                    Dropdown link
                </a>
                <div class="dropdown-menu" aria- 
labelledby="navbarDropdownMenuLink">
                    <a class="dropdown-item" href="#">Action</a>
                    <a class="dropdown-item" href="#">Another 
action</a>
                    <a class="dropdown-item" href="#">Something 
else here</a>
                </div>
            </li>
        </ul>
    </div>
</nav>

</head>


<body>
{% block content %}
{% endblock %}
</body>

在这段代码中,我将 custom.css 文件保存在 auction/auction/static/css/custom.css 下

这是我的 settings.py 文件:

STATIC_URL = '/static/'

STATIC_DIRS = 'static'

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')

add on :我可以通过chrome的inspect元素导航到custom.css,它显示在那里,但更改仍然没有反映在向其中添加任何css。 enter image description here

【问题讨论】:

    标签: python html css django django-templates


    【解决方案1】:

    试试这个

    在 settings.py 中

    PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    STATIC_URL = '/static/'
    STATIC_ROOT = PROJECT_DIR + '/static/'
    

    在主 urls.py 中

    if settings.DEBUG:
        urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    

    更多详情请参考this

    【讨论】:

      【解决方案2】:

      尝试运行python manage.py collectstatic

      Django 可能正在查看您部署的静态文件。

      https://docs.djangoproject.com/en/2.1/howto/static-files/#deployment

      【讨论】:

        【解决方案3】:

        正如 c.grey 在他的回答中所说,您应该将 STATIC_URLSTATIC_ROOT 添加到您的 settings.py 文件中。

        但由于您的静态 URL 是 /static/,开头带有斜线。您可能还需要更改 HTML 中的行

        来自: &lt;link rel="stylesheet" href="{% static 'css/custom.css'%}"

        到: &lt;link rel="stylesheet" href="/{% static 'css/custom.css'%}"

        在它之前添加一个斜杠。

        另外,请确保仅在 base.html 中包含 CSS 文件,而不是在 base.htmlyourfile.html 中包含 CSS 文件

        【讨论】:

          【解决方案4】:

          在你的 settings.py 文件中试试这个:

          STATIC_URL = '/static/'
          PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
          
          STATICFILES_DIRS = [
          os.path.join(PROJECT_DIR, "static"),
          ]
          
          STATIC_ROOT = STATICFILES_DIRS 
          

          在您的主要 urls.py 中:

          if settings.DEBUG:
              urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
          

          然后运行python manage.py collectstatic

          并确保在 base.html 中添加 css 和 js 文件。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2016-08-28
            • 1970-01-01
            • 1970-01-01
            • 2019-03-18
            • 2019-03-31
            • 2020-12-09
            • 1970-01-01
            相关资源
            最近更新 更多