gpt4 book ai didi

python - HTML 背景图片

转载 作者:太空宇宙 更新时间:2023-11-03 21:44:41 25 4
gpt4 key购买 nike

我正在使用 django 并尝试将背景图像添加到我的 base.html,从而将其应用到站点的其余部分,但我遇到了麻烦。

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
{% load staticfiles %}
<head>
<title>{% block title %}Local 9{% endblock %}</title>
<style type="text/css">
body {
background-image: url('{{STATIC_URL}}img/background.jpg');
}
</style>
</head>

<body>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>

我的文件在正确的位置。我也在我的 home.html 中这样做:

{% extends "base.html" %}
{% block content %}
<a>HI</a>
{% endblock %}

我使用的是默认的 settings.py。我的 STATIC_URL = '/static/'... 我完全不知所措了。任何想法或建议都会非常有帮助。

最佳答案

Django 上的静态文件服务可能会出现一些问题。完成此 list :

未正确安装

首先,在settings.py中:

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

STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'

STATICFILES_STORAGE 设置指示 collectstatic 函数将使用哪个后端。在部署中,可以更改此设置,以便 collectstatic 将文件收集在一起并将它们发送到 Amazon S3。

配置错误或缺少路由

现在在 urls.py 中:

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

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

这会添加一个名为“static”的路由,然后您应该在每个希望使用静态文件的模板中引用它:

{% load staticfiles %}

<img src="{% static 'path/to/my/image.jpg' %}" />

collectstatic 找不到文件

如果您仍然遇到问题,则 collectstatic 命令可能找不到您的文件。此命令遵循某些规则,以便找到您的静态文件,然后将它们复制到要提供服务的位置。有几个可用的后端告诉它如何执行此操作,它们在 settings.py 中配置:

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)

AppDirectoriesFinder 的工作方式如下:“查看 INSTALLED_APPS 中的每个应用程序,如果该应用程序中有一个名为‘static’的文件夹,则复制它”

FileSystemFinder:“复制 STATICFILES_DIRS 中列出的每个目录”

假设您将静态文件保存到元素中的两个不同文件夹:“图像”和“音频”。 AppDirectoriesFinder 找不到这些,因为它们不在名为“static”的文件夹中。 FileSystemFinder 可以,但前提是您使用 STATICFILES_DIRS 准确地告诉它应该查找的位置:

# settings.py

# Set PROJECT_DIR to be the folder where settings.py lives:
PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))

STATICFILES_DIRS = (os.path.join(PROJECT_DIR, 'images'),
os.path.join(PROJECT_DIR, 'audio'),
)

您必须为 STATICFILES_DIRS 中的每个目录使用完整路径,就像我在这里所做的那样。

STATIC_ROOTSTATIC_URL

现在您已经确定您的静态文件是可发现的,collectstatic 将收集它们并将它们复制到 STATIC_ROOT。以我的示例为例,我可以将以下内容添加到我的 settings.py 中:

STATIC_ROOT = os.path.join(PROJECT_DIR, 'static')
STATIC_URL = '/static/'

现在,当我运行 collectstatic 时,它会首先使用 FileSystemFinder 来定位我的“图像”和“音频”文件夹。它会将这些复制到“静态”文件夹 (STATIC_ROOT)。然后 AppDirectoriesFinder 将启动,并在我的每个 INSTALLED_APPS 中查找“静态”文件夹。例如,如果我安装了 Django Admin,AppDirectoriesFinder 将在该应用程序中找到静态文件并将它们复制过来。

现在所有文件都位于我元素中名为“静态”的文件夹中 - 如果我打开此文件夹,我应该会看到我的“图像”和“音频”目录的副本,如果是,还有一个“管理”目录我安装了 Django Admin。

关于python - HTML 背景图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21223884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com