我试图找到一种方法,如何告诉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">
...
型
项目结构:
问题出在哪里?
6条答案
按热度按时间wfsdck301#
我不太喜欢你的目录(结构).
如果文件夹“web”是一个应用程序,而“dedo”是一个带有设置的文件夹,则您的应用程序文件夹中不能有“static”和“templates”文件夹。
它应该是:
字符串
在您的setttings.py中,您需要这样写:
型
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相同。
rlcwz9us2#
我猜你没有使用**“收集静态”**操作。
在shell/CMD中运行:第一个月
如果它不能解决你的问题,发布你得到的错误。
oxosxuxt3#
关于此部署的一个问题是,一旦通过AWS EB发布,静态文件(如style.css)将无法读取,并且页面缺乏样式。文档和论坛没有很清楚地指出这是Django的部署方式,必须指示Web服务器使用这些文件。
一旦在
project/settings.py
中定义了STATIC_ROOT
和STATIC_URL
,并将其添加到project/urls.py
中的urlpatterns
,问题就解决了。***+ static(settings[...]***告诉Web服务器要使用STATIC_URL。
我有一个功能齐全的项目与EB部署说明在这里:https://github.com/nandoabreu/django-polls
vjhs03f74#
你可能需要在你的“urls.py”中添加你的设置和静态URL,如下所示。
#urls.py
字符串
你也可以在下面的链接中看到django的文档。https://docs.djangoproject.com/en/3.2/howto/static-files/
t5fffqht5#
我在这里继续一个愚蠢的答案,我知道这很晚了,但它可能会帮助将来的人,但是你转义了字符串中的双引号吗?
“{% static these ones->“css/bootstrap.min.css”%}”
iih3973s6#
->更新您的settings.py
STATICFILES_DIRS = [ BASE_DIR / 'static' ]
->在base.html文件中添加template标签以加载静态文件
{% load static %}
->使用模板链接css文件
link rel=“样式表”href="{% static 'main.css' %}”