Django找不到css(静态文件夹)

q3qa4bjr  于 2023-08-08  发布在  Go
关注(0)|答案(6)|浏览(125)

我试图找到一种方法,如何告诉Django在哪里存储static文件,如css。问题是它可能找不到static文件夹。我已经设置了settings.py文件,但它没有帮助。

设置PY:

STATIC_URL = '/static/'

INSTALLED_APPS = (
    ...
    'django.contrib.staticfiles',
)

字符串

BASE.HTML:

...
...

<title>Rozcestník</title>

<!-- Bootstrap core CSS -->
  {% load static %}
  <link href="{% static "css/bootstrap.min.css" %}" rel="stylesheet">
...

项目结构:

问题出在哪里?

wfsdck30

wfsdck301#

我不太喜欢你的目录(结构).
如果文件夹“web”是一个应用程序,而“dedo”是一个带有设置的文件夹,则您的应用程序文件夹中不能有“static”和“templates”文件夹。
它应该是:

dedo
  __init__.py
  settings.py
  urls.py
  views.py
static
  css
    bootstrap.min.css
templates
  base.html
  index.html
web
  migrations
  __init__.py
  admin.py
  models.py
  tests.py
  views.py
db.sqlite3
manage.py

字符串
在您的setttings.py中,您需要这样写:

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


STATIC_URL =通过浏览器访问静态文件
STATICFILES_DIRS = Django查找静态文件的位置

重要提示:

STATIC_ROOT =用于如果您要通过适当的Web服务器(nginx,apache,...)使用WSGI(gunicorn,modwsgi,...)部署您的Web应用程序
“python manage.py collectstatic”或“python3.X manage.py collectstatic”是将静态文件从STATICFILES_DIRS(以及/admin/的静态文件)复制到STATIC_ROOT的命令,这意味着STATIC_ROOT不能与STATICFILES_DIRS相同。

rlcwz9us

rlcwz9us2#

我猜你没有使用**“收集静态”**操作。
在shell/CMD中运行:第一个月
如果它不能解决你的问题,发布你得到的错误。

oxosxuxt

oxosxuxt3#

关于此部署的一个问题是,一旦通过AWS EB发布,静态文件(如style.css)将无法读取,并且页面缺乏样式。文档和论坛没有很清楚地指出这是Django的部署方式,必须指示Web服务器使用这些文件。
一旦在project/settings.py中定义了STATIC_ROOTSTATIC_URL,并将其添加到project/urls.py中的urlpatterns,问题就解决了。

  • STATIC_ROOT* 保存静态文件的路径。
  • collectstatic* 将应用和管理文件放在STATIC_ROOT中。
  • STATIC_URL* 在浏览器请求时保存指向STATIC_ROOT的链接。
    ***+ static(settings[...]***告诉Web服务器要使用STATIC_URL。

我有一个功能齐全的项目与EB部署说明在这里:https://github.com/nandoabreu/django-polls

vjhs03f7

vjhs03f74#

你可能需要在你的“urls.py”中添加你的设置和静态URL,如下所示。

#urls.py

from django.conf import settings
from django.conf.urls.static import static

字符串
你也可以在下面的链接中看到django的文档。https://docs.djangoproject.com/en/3.2/howto/static-files/

t5fffqht

t5fffqht5#

我在这里继续一个愚蠢的答案,我知道这很晚了,但它可能会帮助将来的人,但是你转义了字符串中的双引号吗?
“{% static these ones->“css/bootstrap.min.css”%}”

iih3973s

iih3973s6#

->更新您的settings.py
STATICFILES_DIRS = [ BASE_DIR / 'static' ]
->在base.html文件中添加template标签以加载静态文件
{% load static %}
->使用模板链接css文件
link rel=“样式表”href="{% static 'main.css' %}”

相关问题