html 游戏 背景图片,HTML背景图片

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

{% load staticfiles %}

{% block title %}Local 9{% endblock %}

body {

background-image: url('{{STATIC_URL}}img/background.jpg');

}

{% block content %}{% endblock %}

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

{% extends "base.html" %}

{% block content %}

HI

{% endblock %}

我正在使用默认的settings.py。我的STATIC_URL ='/ static /'...我全神贯注。任何想法或建议都会很有帮助。

解决方案

在Django上提供静态文件可能会出错。通过此清单进行操作:

没有正确安装

首先,在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)

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

{% load staticfiles %}

image.jpg'%20%%7D

找不到文件collectstatic

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

STATICFILES_FINDERS = (

'django.contrib.staticfiles.finders.FileSystemFinder',

'django.contrib.staticfiles.finders.AppDirectoriesFinder',

)

AppDirectoriesFinder的工作方式如下:“浏览中的每个应用程序INSTALLED_APPS,如果该应用程序中有一个名为“静态”的文件夹,则将其复制”

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_ROOT和STATIC_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全栈开发工程师,自媒体达人,逗比程序猿,钱少话少特宅,关注我,做朋友, 我们一起谈人生和理想吧!我的公众号:想吃麻辣香锅

关注公众号回复充值+你的账号,免费为您充值1000积分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值