【问题标题】:Django doesn't see static css filesDjango 看不到静态 css 文件
【发布时间】:2022-07-22 15:02:33
【问题描述】:

遇到一个问题:django 看不到静态文件。特别是css。

这是项目结构:

settings.py (DEBUG = True):

STATIC_URL = '/static/'

STATICFILES_DIRS = []

STATIC_ROOT = os.path.join(BASE_DIR, "static")

aboutus.html

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

<html>
    <head>
        <link type="text/css" href="{% static 'mainapp/css/aboutus.css' %}" rel="stylesheet" /> # здесь aboutus.css pycharm подчеркивает, ибо не видит
    </head>
    <body>
        {% block title %}
        О нас
        {% endblock %}
        {% block content %}

        <div id='div1'>
            <span id='span1'>▼</span> Кто мы такие?</div>
        <div id='div2'>
            1 <span class='span2'>2</span>3
            <span  class='span2'>4 </span><br>
            5 <br>
            6 <a href="https://www.youtube.com/watch?v=OWycy6WRv7w">7</a>
        </div>

        {% endblock %}
    </body>
</html>

aboutus.css:

#div1 {
 font-size: 20px;
 text-align: center;
 margin-top: 30px;
 margin-bottom : 20px
}
#span1 {
    font-size: 9pt
}
#div2 {
    box-shadow: 0 0 10px rgba(0,0,0,0.5);
    background-color: rgb(255,255,255);
    border-radius: 5px;
    margin-left: 10px;
    margin-right: 10px;
    line-height: 2.5;
    text-align: center;
    margin-bottom : 20px;
    border: 1px solid gray
}
.span2 {
    color: red
}

urls.py

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

'django.contrib.staticfiles' in INSTALLED_APPS 是。我用的是mac os。

【问题讨论】:

  • 将css文件夹移动到静态,mainapp不是必须的,必须是/static/css/startpage.css
  • 它没有帮助我
  • 我的应用程序的文件夹结构与您的相似,但我使用反斜杠 &lt;link rel="stylesheet" type="text/css" href="{% static 'mainapp\css\startpage.css' %}"/&gt;
  • 它也不起作用
  • STATIC_URL 指向 /static/ 的基本目录,但这与您的目录结构不匹配。出于多种原因,我实际上更喜欢在项目根目录中构建一个静态文件夹,并且它在开发和生产环境中都运行良好。在项目根目录中创建一个静态文件夹,将所有的 css 文件复制到那里(只删除原始 css 位置新路径有效)。

标签: python html python-3.x django static


【解决方案1】:

我看到了 cmets,但我无法在其中回答,所以我决定直接写答案来帮助你。

基本上你做错的是将static文件夹粘贴到错误的根目录中 - 你的根目录(BASE_DIR)是djangopractice1

但是,如果您想在单独的应用程序中拥有 static 目录,您始终可以在设置中将 STATICFILES_DIRS 设置为:

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

我希望它对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-21
    • 2022-01-18
    • 2016-04-01
    • 2016-02-09
    • 2021-11-25
    • 2020-06-14
    • 2013-09-05
    • 2011-06-18
    相关资源
    最近更新 更多